标签:
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
标签:
原文地址:http://www.cnblogs.com/TangKaiFu/p/4447496.html