UIDynamic是一种物理引擎,能够模拟和仿真现实生活中的物理现象:iOS7之后引入的新技术
1.重力、弹性碰撞等现象,案例“愤怒的小鸟”;
价值:让开发人员可以在原理物理公式的情况下,实现炫酷的物理仿真效果;
提高了游戏的开发效率,产生更多更好玩的物理仿真游戏;
知名2D物理引擎:Box2d,Chipmunk
使用步骤:
1.创建一个物理仿真器(设置仿真范围);2.创建相应的仿真行为(顺便添加仿真元素);3将物理仿真行为添加到仿真器里边,开始仿真。
不是任何对象都可以进行物理仿真,必须遵守UIDynamicitem协议的对象才可以进行物理仿真;任何UI控件都可以进行物理仿真;
物理仿真行为:重力行为 UIGravityBehavior,UIcollisionBehavior碰撞行为,UISnapBehavior捕捉行为,UIpushbehavior推动行为,UIttachmentBehavior附着行为。UIDynamicItemBehavior动力元素行为
物理仿真器
(1)物理仿真器须知
它可以让物理仿真元素执行物理仿真行为
它是UIDynamicAnimator类型的对象
(2)UIDynamicAnimator的初始化
- (instancetype)initWithReferenceView:(UIView *)view;
view参数:是一个参照视图,表示物理仿真的范围
5.物理仿真器的说明
(1)UIDynamicAnimator的常见方法
- (void)addBehavior:(UIDynamicBehavior *)behavior; //添加1个物理仿真行为
- (void)removeBehavior:(UIDynamicBehavior *)behavior; //移除1个物理仿真行为
- (void)removeAllBehaviors; //移除之前添加过的所有物理仿真行为
(2)UIDynamicAnimator的常见属性
@property (nonatomic, readonly) UIView* referenceView; //参照视图
@property (nonatomic, readonly, copy) NSArray* behaviors;//添加到物理仿真器中的所有物理仿真行为
@property (nonatomic, readonly, getter = isRunning) BOOL running;//是否正在进行物理仿真
@property (nonatomic, assign) id <UIDynamicAnimatorDelegate> delegate;//代理对象(能监听物理仿真器的仿真过程,比如开始和结束)
原文:http://www.cnblogs.com/liuyang666/p/5222055.html