iOS7 UIKit动力学-碰撞特性UICollisionBehavior 上

我们谈到了重力上述财产UIGravityBehavior这个类。

非常明确的看法,当我们添加的属性的严重性后,,苹果UIview像掉进无底洞,地下坠,不断的加速。而如今呢,我们要在这个手机屏幕上,加入一个地面。使不断下落的苹果终于有一个着陆点。那么我们怎样为这个视图加入一个地面呢。例如以下(当前内容承接上文内容,如有问题。请看上文:UIGravityBehavior):

首先在.h文件里创建一个UICollisionBehavior对象

.h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    UIDynamicAnimator * _animator;
    UIGravityBehavior * _gravity;
    //new
    UICollisionBehavior * _ground;
}
@end

然后在.m文件里为UICollisionBehavior对象进行初始化。并为apple对象设置边框属性。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIView * apple = [[UIView alloc] initWithFrame:CGRectMake(40,40, 40, 40)];
    apple.backgroundColor = [UIColor redColor];
    [self.view addSubview:apple];

    _animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
    _gravity = [[UIGravityBehavior alloc] initWithItems:@[apple]];
    [_animator addBehavior:_gravity];

    /*   UICollisionBehavior   */
    _ground = [[UICollisionBehavior alloc] initWithItems:@[apple]];
    _ground.translatesReferenceBoundsIntoBoundary = YES;
    [_animator addBehavior:_ground];
}

这里,以上的代码创建了一个碰撞的行为。它定义了一个或者多个边界交互的特性,这里没有显示的为各个空间加入边界,而是隐式的调用了一个UICollisionBehavior的属性translatesReferenceBoundsIntoBoundary,将这个属性设置为YES之后。

会使边界引用使用视图提供的UIDynamicAnimator边界。构建和执行,你就会看到效果,apple落到地上弹起来了,又又一次落到地上。

点击关注我。很多其它精彩内容!。!

群号:336146073

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-17 05:53:17

iOS7 UIKit动力学-碰撞特性UICollisionBehavior 上的相关文章

iOS7 UIKit动力学-重力特性UIGravityBehavior

续文 在iOS7中事实上新加了非常多新的特性.之前看过,也了解过一些新的内容.如新的动力学特性,TextKit的图文混排,还有自己定义的动画跳转等.那段时间也比較忙,没时间整理.如今项目也弄完了,打算在学习旧的东西的同一时候好好的区了解这些新的内容. 先说下UIDynamicAnimator类,全部仿真行为的父类,这个给我的感觉就跟上先问文一样.或者像是加入手势或者加入视图的感觉,详细往下细说. UIDynamicBehavior:仿真行为,是动力学行为的父类,主要的动力学行为类UIGravit

iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。

转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage风格 目录[-] UIDynamicAnimator UIAttachmentBehavior(吸附) UIPushBehavior(推动) UIGravityBehavior(重力) UICollisionBehavior(碰撞) UISnapBehavior(捕捉) UICollectionVi

【iOS开发每日小笔记(三)】利用iOS7 UIKit Dynamics 仿Zaker客户端首页动态效果

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.该分类的文章,内容涉及的知识点可能是很简单的.或是用很短代码片段就能实现的,但在我看来它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下(^_^).其实,90%的作用是帮助自己回顾.记忆.复习.如果看官觉得太easy,太碎片,则可以有两个选择:1,移步[iOS探究]分类,对那里的文章进行斧正:2,在

iOS开发概述UIkit动力学

UIkit动力学是UIkit框架中模拟真实世界的一些特性. UIDynamicAnimator 主要有UIDynamicAnimator类,通过这个类中的不同行为来实现一些动态特性. 它一般有两种初始化方法,先讲常见的第一种 animator= [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; 动态特性的实现主要依靠它所添加的行为,通过以下方法进行添加和移除,  [animator addBehavior:attachmen

UIDynamicAnimator UIKit动力学

也许是工作上并没有这方面的需要,对UIDynamicAnimator的了解不多.这里做简单的介绍: UIKit动力学是模拟真实世界的一些特性,主要就是UIDynamicAnimator类,通过类中的不同行为实现一些动态特性: 1.初始化 UIDynamicAnimator有两种初始化方式: let animator = UIDynamicAnimator(referenceView: self.view) self.view表示一个参照试图,用来规定物理仿真的范围 animator = UIDy

在ios7真机上和iOS6模拟器上运行是好的,而在iOS6真机上运行却报错

在ios7真机上和iOS6模拟器上运行是好的,而在iOS6真机上运行却报错 解决方法: 或是都设置为yes.. Build Active Architecture Only的意思是只生成适应的指令集 在ios7真机上和iOS6模拟器上运行是好的,而在iOS6真机上运行却报错,码迷,mamicode.com

迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上)【转载】

转自: DBAplus社群 http://www.toutiao.com/m5762164771/ 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上) - 今日头条(TouTiao.com)http://toutiao.com/a6300616158581604609/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=4592472790&

IOS应用在ios7(iPhone5/iPhone5s)上不能全屏显示

前言 [IOS应用在iOS7系统或者iPhone5/iPhone5s上不能全屏显示,应用画面上下各有1条黑色,但是在其他系统或者型号的手机上却是正常显示 Paste_Image.png Paste_Image.png 解决方案 第一步 点击Launch Images Source后面的Use Asset Catalog按钮,会弹出Migrate launch images to an asset catalog对话框,点击Migrate按钮后,会将Launch Images Source设置为L

iOS开发UIkit动力学UIDynamicAnimator一系列动画

UIDynamicAnimator类,通过这个类中的不同行为来实现一些动态特性. UIAttachmentBehavior(吸附),UICollisionBehavior(碰撞),UIGravityBehavior(重力),UIPushBehavior(推动),UISnapBehavior(捕捉).另外还有一个辅助的行为UIDynamicItemBehavior,用来在item层级设定一些参数,比如item的摩擦,阻力,角阻力,弹性密度和可允许的旋转等等. 1.UIAttachmentBehav