UIKit Dynamics : 一個模擬真實的動畫和交互系統,具備可組合、可重用和聲明的特色。git
UIKit Dynamics Framwork:github
Reference Viewe: 參照物,爲Dynamic system提供座標系。動畫
UIDynamicAnimator :物理引擎。會記錄你添加到引擎中的行爲,並提供全局上下文。spa
UIDynamicBehavior: 行爲模型.net
1.UIAttachmentBehavior3d
2.UICollisionBehavior繼承
3.UIDynamicItemBehaviorci
4.UIGravityBehaviorget
5.UIPushBehavior源碼
6.UISnapBehavior
dynamic行爲能夠是組合的,也能夠被繼承,能夠在任意時間內進行添加和移除;必須是在二維空間進行。
自由落體運動實例:
1.添加受力物體
@interface ViewController (){
UIView *motionView;
}
motionView = [[UIViewalloc] initWithFrame:CGRectMake(100,90,100,100)];
motionView = [UIColorgrayColor];
[self.view motionView];
2.添加引擎,並提供參照物
UIDynamicAnimator *animator;
animator = [[UIDynamicAnimatoralloc] initWithReferenceView:self.view;
3.給引擎添加劇力行爲
UIGravityBehavior *gravity;
gravity = [[UIGravityBehavioralloc]initWithItems:@[motionView]];
[animatoraddBehavior:gravity];
4.添加邊界
UICollisionBehavior *collision;
collision = [[UICollisionBehavioralloc]initWithItems:@[motionView]];
//把參照物的bound設置爲邊界
collision.translatesReferenceBoundsIntoBoundary =YES;
[animatoraddBehavior:collision];
源碼下載: