UIdynamic

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;//代理对象(能监听物理仿真器的仿真过程,比如开始和结束)

原文地址:https://www.cnblogs.com/liuyang666/p/5222055.html