iOS学习_UIDynamic(物理仿真)学习笔记

UIDynamic : 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象如:重力、弹性碰撞等

 使用步骤 :

1.创建物理仿真器 :

[[ UIDynamicAnimator alloc] initWithReferenceView : ]//View表示物理仿真的范围

2.创建物理仿真行为,添加仿真元素 :

[[UIGravityBehavior alloc]initWithItems:];//放进去的是数组

3.将物理仿真行为添加到仿真器中 :

[anim addBehavior:gravity]

 

我的记忆方法(仅仅是记忆方法,如果能记住就不要看记忆方法了) :

仿真器   -->  大海        

仿真行为 -->  船 

View     -->  人

创建一个仿真器(大海),创建仿真行为(船),船上要有人(View),把船添加到大海中去,就可以翱翔了。

 

UIDynamic提供了几个物理仿真行为

1.重力行为: UIGravityBehavior

2.碰撞行为:UICollisionBehavior

3.捕追行为 : UISnapBehavior

4.推动行为 : UIPushBehavior

5.附着行为 : UIAttachmentBehavior 

6.动力元素行为 : UIDynamicItemBehavior

 

使用例子 : 

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

    UIDynamicAnimator * animator = [[UIDynamicAnimator alloc]initWithReferenceView:self.containView];

    self.animator = animator;//注意一定要持有物理仿真器,不然还没开始执行,animator就被释放

    UIGravityBehavior * behavior0 = [[UIGravityBehavior alloc]initWithItems:@[self.testView]];

    UICollisionBehavior * behavior1 = [[UICollisionBehavior alloc]initWithItems:@[self.testView]];

    behavior1.translatesReferenceBoundsIntoBoundary = YES;//把view的bounds设为边界

    [animator addBehavior:behavior0];

    [animator addBehavior:behavior1];

}

相关知识点及注意点 : 

(1)任何遵守UIDynamicItem协议的对象都可以进行仿真行为,因为UIView默认添加了UIDynamic协议,所以所有的UI控件都能物理仿真

(2)所有的仿真行为可以独立进行也可以同时使用 ,所有的物理仿真行为都继承来自UIDynamicBehavior

 (3) 吸附行为默认只能吸附一次,如果是多次吸附必须从仿真器中移除在重新添加

转载于:https://www.cnblogs.com/TangKaiFu/p/4447496.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值