UIDynamic--简介

1.什么是UIKite动力学

•UIKit动力学最大的特点是将现实世界动力驱动的动画引入了UIKit,

比如重力,铰链连接,碰撞,悬挂等效果,即将2D物理引擎引入了UIKit

•注意:UIKit动力学的引入,并不是为了替代CA或者UIView动画,在

绝大多数情况下CA或者UIView动画仍然是最优方案,只有在需要引

入逼真的交互设计的时候,才需要使用UIKit动力学它是作为现有交互

设计和实现的一种补充

•其他2D仿真引擎:

➢BOX2D:C语言框架,免费

➢Chipmunk:C语言框架免费,其他版本收费


2.UIDynamic中三个重要的概念

*Dynamic Animator:动画者,为动力学元素提供物理学相关的能力及动画,同时为这些元素提供相关的上下文,是动力学元素与底层iOS物理引擎之间的中介,将Behavior对象添加到Animator即可实现动力仿真

*Dynamic Animator Item:动力学元素,是任何遵守了UIDynamicItem协议的对象,从iOS 7.0开始,UIView和UICollectionViewLayoutAttributes默认实现该协议。如果自定义的对象实现了该协议,即可通过Dynamic Animator实现物理仿真

*UIDynamicBehavior:仿真行为,是动力学行为的父类,基本的动力学行为类UIGravityBehavior、UICollisionBehavior、UIAttachmentBehavior、UISnapBehavior、UIPushBehavior以及UIDynamicItemBehavior均继承自该父类


3.动力学动画元素(Dynamic Animator Item)协议

•只有遵守了UIDynamicItem协议的对象才可以参与到UI动力学仿真中

•从iOS 7开始,UIView和UICollectionViewLayoutAttributes类默认实现了该协议

•协议定义的属性:

➢bounds:Dynamic animator需要动画元素的边框时调用,只读属性,用于计算物体的边界以及质量

➢center:动力学元素的中心点,读写属性

➢transform:动力学元素的旋转角度,读写属性(需要指定Layer的形变属性)


4.动力学行为的分类:

• iOS7.0中提供的动力学行为包括:

➢UIGravityBehavior:重力行为

➢UICollisionBehavior:碰撞行为

➢UIAttachmentBehavior:附着行为

➢UISnapBehavior:吸附行为

➢UIPushBehavior:推行为

➢UIDynamicItemBehavior:动力学元素行为

组合使用可以实现一些较为复杂的效果

你可能感兴趣的:(UIDynamic--简介)