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 物體就徹底不會轉動,而不管施加多大的轉動力

相關文章
相關標籤/搜索