iOS-拓展-UIDynamic簡介

一、簡單介紹

1.什麼是UIDynamic

UIDynamic是從iOS 7開始引入的一種新技術,隸屬於UIKit框架

可以認爲是一種物理引擎,能模擬和仿真現實生活中的物理現象

如:重力、彈性碰撞等現象

 

2.物理引擎的價值

廣泛用於遊戲開發,經典成功案例是“憤怒的小鳥”

讓開發人員可以在遠離物理學公式的情況下,實現炫酷的物理仿真效果

提高了遊戲開發效率,產生更多優秀好玩的物理仿真遊戲

 

3.知名的2D物理引擎

Box2d

Chipmunk

 

二、使用步驟

要想使用UIDynamic來實現物理仿真效果,大致的步驟如下

(1)創建一個物理仿真器(順便設置仿真範圍)

(2)創建相應的物理仿真行爲(順便添加物理仿真元素)

(3)將物理仿真行爲添加到物理仿真器中  開始仿真

 

三、相關說明

1.三個概念

(1)誰要進行物理仿真?

  物理仿真元素(Dynamic Item)

 

(2)執行怎樣的物理仿真效果?怎樣的動畫效果?

  物理仿真行爲(Dynamic Behavior) 

 

(3)讓物理仿真元素執行具體的物理仿真行爲

  物理仿真器(Dynamic Animator)

 

2.物理仿真元素

注意

不是任何對象都能做物理仿真元素

不是任何對象都能進行物理仿真

 

物理仿真元素要素:

任何遵守了UIDynamicItem協議的對象

UIView默認已經遵守了UIDynamicItem協議,因此任何UI控件都能做物理仿真

UICollectionViewLayoutAttributes類默認也遵守UIDynamicItem協議

 

3.物理仿真行爲

(1)UIDynamic提供了以下幾種物理仿真行爲

UIGravityBehavior:重力行爲

UICollisionBehavior:碰撞行爲

UISnapBehavior:捕捉行爲

UIPushBehavior:推動行爲

UIAttachmentBehavior:附着行爲

UIDynamicItemBehavior:動力元素行爲

 

(2)物理仿真行爲須知

上述所有物理仿真行爲都繼承自UIDynamicBehavior

所有的UIDynamicBehavior都可以獨立進行

組合使用多種行爲時,可以實現一些比較複雜的效果

 

 

4.物理仿真器

(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;//代理對象(能監聽物理仿真器的仿真過程,比如開始和結束)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章