iOS 7 中推出的UIKit Dynamics,主要带来了模拟现实的二维动画效果,用来创建逼真的物理动画。

关键类
UIDynamicAnimator 封装了底层 iOS 物理引擎,为动力项(UIDynamicItem)提供物理相关的功能和动画。
UIDynamicBehavior 动力行为,为动力项提供不同的物理行为
UIDynamicItem 动力项,相当于现实世界中的一个基本物体
UIDynamicAnimator常用API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| @interface UIDynamicAnimator: NSObject
- (instancetype)initWithReferenceView:(UIView *)view;
- (void)addBehavior:(UIDynamicBehavior *)behavior;
- (void)removeBehavior:(UIDynamicBehavior *)behavior;
- (void)removeAllBehaviors;
@property (nullable, nonatomic, readonly) UIView *referenceView;
@property (nonatomic, readonly, copy) NSArray<__kindof UIDynamicBehavior*> *behaviors;
- (NSArray<id<UIDynamicItem>> *)itemsInRect:(CGRect)rect;
- (void)updateItemUsingCurrentState:(id <UIDynamicItem>)item;
@property (nonatomic, readonly, getter = isRunning) BOOL running;
- (NSTimeInterval)elapsedTime;
@property (nullable, nonatomic, weak) id <UIDynamicAnimatorDelegate> delegate;
@end
|
UIDynamicBehavior 的主要方法和属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| @property(nonatomic, copy) void (^action)(void)
@property(nonatomic, readonly, copy) NSArray *childBehaviors
@property(nonatomic, readonly) UIDynamicAnimator *dynamicAnimator
- (void)addChildBehavior:(UIDynamicBehavior *)behavior
- (void)removeChildBehavior:(UIDynamicBehavior *)behavior
- (void)willMoveToAnimator:(UIDynamicAnimator *)dynamicAnimator
|
https://github.com/ZhipingYang/UIKitDynamics
https://github.com/xiaofei86/UIKitDynamics
http://vit0.com/blog/2014/03/08/ios-7-uikit-dynamic-xue-xi-zong-jie/