UIDynamic——UIKit动力学

简介数组

UIKit动力学最大的特色是将现实世界动力驱动的动画引入了UIKit,好比重力,铰链链接,碰撞,悬挂等效果,即将2D物理引擎引入了UIKit框架

注意:UIKit动力学的引入,并非为了替代CA或者UIView动画,在绝大多数状况下CA或者UIView动画仍然是最优方案,只有在须要引入逼真的交互设计的时候,才须要使用UIKit动力学它是做为现有交互设计和实现的一种补充动画

其余2D仿真引擎:spa

BOX2D:C语言框架,免费设计

Chipmunk:C语言框架免费,其余版本收费对象

UIDynamic中的三个重要概念继承

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

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

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

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

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

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

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

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

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

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

UIGravityBehavior:重力行为

UICollisionBehavior:碰撞行为

UIAttachmentBehavior:附着行为

附着属性:

attachedBehaviorType:链接类型(链接到锚点或视图)

items:链接视图数组

anchorPoint:链接锚点

length:距离链接锚点的距离

只要设置了如下两个属性,即为弹性链接

damping:振幅大小

frequency:振动频率

UISnapBehavior:吸附行为 有damping属性:振幅大小,默认为0.5f

UIPushBehavior:推行为

推属性:

mode:推进类型(一次性或是持续推)

active:是否激活,若是是一次性推,须要激活

angle:推进角度

magnitude:推进力量

UISnapBehavior :吸附

UIDynamicItemBehavior:动力学元素行为

全部的UIDynamicBehavior都是能够独立做用,同时也遵照力的合成。也就是说,组合使用行为能够实现一些较复杂的效果

动力学元素行为(DynamicItem)

是一个辅助的行为,用来设置运动学元素参与物理仿真过程当中的参数,如:弹性系数、摩擦系数、密度、阻力、角阻力以及是否容许旋转等

elasticity(弹性系数):决定了碰撞的弹性程度,好比碰撞时物体的弹性

friction(摩擦系数):决定了沿接触面滑动时的摩擦力大小

density(密度):跟size结合使用,计算物体的总质量。质量越大,物体加速或减速就越困难

resistance(阻力):决定线性移动的阻力大小,与摩擦系数不一样,摩擦系数只做用于滑动运动

angularResistance(角阻力):决定旋转运动时的阻力大小

allowsRotation(容许旋转):这个属性颇有意思,它在真实的物理世界没有对应的模型。设置这个属性为NO 物体就彻底不会转动,而不管施加多大的转动力

相关文章
相关标签/搜索