如果自定义的对象实现了该协议,即可通过Dynamic Animator实现物理仿真 ---- UIDynamicAnimator(动画者) 是动力行为(UIDynamicBehavior)的容器,添加到容器内的行为才会发挥作用 *)behavior; 3.移除行为、移除所有行为 - (void)removeBehavior:(UIDynamicBehavior *)behavior; - (void)removeAllBehaviors *> *behaviors; ---- 动力行为(UIDynamicBehavior) 所有的动力学行为可以独立作用也可以组合使用,注意:避免重复添加行为对象,可以用懒加载 UIDynamicBehavior 属性: 1.获取添加到该动态行为中的子动态行为 @property (nonatomic, readonly, copy) NSArray<__kindof UIDynamicBehavior *> *)behavior; 2、移除一个子动态行为 - (void)removeChildBehavior:(UIDynamicBehavior *)behavior; 3、 当该动态行为将要被添加到一个
解析如下: @available(iOS 7.0, *) @MainActor open class UIDynamicItemBehavior : UIDynamicBehavior { // ) // 移除物理行为 open func removeBehavior(_ behavior: UIDynamicBehavior) // 移除所有物理行为 open UIDynamicBehavior基类 UIDynamicBehavior是所有物理行为的基类,其中定义了一些公共的方法和属性: @available(iOS 7.0, *) @MainActor open class UIDynamicBehavior : NSObject { // 添加子行为 open func addChildBehavior(_ behavior: UIDynamicBehavior : [UIDynamicBehavior] { get } // 物理仿真器在执行动画时会调用此方法 open var action: (() -> Void)?
UIPushBehavior:推动行为 UIAttachmentBehavior:附着行为 UIDynamicItemBehavior:动力元素行为 物理仿真行为须知 上述所有物理仿真行为都继承自UIDynamicBehavior 所有的UIDynamicBehavior都可以独立进行 组合使用多种行为时,可以实现一些比较复杂的效果 物理仿真器 物理仿真器须知 它可以让物理仿真元素执行物理仿真行为 它是UIDynamicAnimator instancetype)initWithReferenceView:(UIView *)view; UIDynamicAnimator的常见方法 //添加1个物理仿真行为 - (void)addBehavior:(UIDynamicBehavior *)behavior; //移除1个物理仿真行为 - (void)removeBehavior:(UIDynamicBehavior *)behavior; //移除之前添加过的所有物理仿真行为 -
介绍 使用UIDynamic,需要理解几个概念:1、UIDynamicAnimator,2、UIDynamicBehavior,3、UIDynamicItem。 UIDynamicBehavior 相当于仿真动画体。创建时,需要附带动画将要作用的视图(即UIDynamicItem),可以传一个包含多个视图的数组。 常用的UIDynamicBehavior有: UIGravityBehavior 重力行为 UICollisionBehavior 碰撞行为 UIAttachmentBehavior 附着行为
UIDynamicBehavior:动力行为的描述,用来指定 UIDynamicItem 应该如何运动,即定义适用的物理规则。 UIDynamicAnimator;动画的播放者,动力行为(UIDynamicBehavior)的容器,添加到容器内的行为将发挥作用; ReferenceView:等同于力学参考系,如果你的初中物理不是语文老师教的话
UIInterface.h> 5 #import <UIKit/UIKitDefines.h> 6 #import <UIKit/UIAppearance.h> 7 #import <UIKit/UIDynamicBehavior.h