UIDynamic简介什么是UIDynamicUIDynamic是从iOS7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象重力、弹性碰撞等现象物理引擎的价值广泛用于游戏开发,经典成功案例是“愤怒的小鸟”让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏知名的2D物理引擎Box2dChipmunk使用步骤要想使用UIDynamic来实现物理仿真效果,大致的步骤如下创建一个物理仿真器(顺便设置仿真范围)创建相应的物理仿真行为(顺便添加物理仿真元素)将物理仿真行为添加到物理仿真器中开始仿真三大概念物理仿真元素(DynamicItem)谁要进行物理仿真?物理仿真行为(DynamicBehavior)执行怎样的物理仿真效果?怎样的动画效果?物理仿真器(DynamicAnimator)让物理仿真元素执行具体的物理仿真行为物理仿真元素注意不是任何对象都能做物理仿真元素不是任何对象都能进行物理仿真哪些对象才能做物理仿真元素任何遵守了UIDynamicItem协议的对象UIView默认已经遵守了UIDynamicItem协议,因此任何UI控件都能做物理仿真UICollectionViewLayoutAttributes类默认也遵守UIDynamicItem协议物理仿真行为UIDynamic提供了以下几种物理仿真行为UIGravityBehavior:重力行为UICollisionBehavior:碰撞行为UISnapBehavior:捕捉行为UIPushBehavior:推动行为UIAttachmentBehavior:附着行为UIDynamicItemBehavior:动力元素行为物理仿真行为须知上述所有物理仿真行为都继承自UIDynamicBehavior所有的UIDynamicBehavior都可以独立进行组合使用多种行为时,可以实现一些比较复杂的效果物理仿真器物理仿真器须知它可以让物理仿真元素执行物理仿真行为它是UIDynamicAnimator类型的对象UIDynamicAnimator的初始化-(instancetype)initWithReferenceView:(UIView*)view;view参数:是一个参照视图,表示物理仿真的范围物理仿真器UIDynamicAnimator的常见方法-(void)addBehavior:(UIDynamicBehavior*)behavior;添加1个物理仿真行为-(void)removeBehavior:(UIDynamicBehavior*)behavior;移除1个物理仿真行为-(void)removeAllBehaviors;移除之前添加过的所有物理仿真行为物理仿真器UIDynamicAnimator的常见属性@property(nonatomic,readonly)UIView*referenceView;参...