QMUIDisplayLinkAnimation
@interface QMUIDisplayLinkAnimation : NSObject
@property(nonatomic, strong, readonly) CADisplayLink *displayLink;
@property(nonatomic, strong) id fromValue;
@property(nonatomic, strong) id toValue;
/// 动画时间
@property(nonatomic, assign) NSTimeInterval duration;
/// 动画曲线
@property(nonatomic, assign) QMUIAnimationEasings easing;
/// 是否需要重复,如果设置为YES,那么会无限重复动画,默认NO
/// TODO: 目前功能上不支持小数点的循环次数,例如 0.5 1.5
@property(nonatomic, assign) BOOL repeat;
/// 延迟开始动画
@property(nonatomic, assign) NSTimeInterval beginTime;
/// 只有设置了repeat之后这个值才有用
@property(nonatomic, assign) float repeatCount;
/// 只有设置了repeat之后这个值才有用。如果YES,则往前做动画之后自动往后做动画,默认NO
@property(nonatomic, assign) BOOL autoreverses;
/// 做动画的block,适用于只有一个属性需要做动画,curValue是经过计算后当前帧的值
@property(nonatomic, copy) void (^animation)(id curValue);
/// 做动画的block,适用于多个属性做动画,需要在block里面自己计算当前帧的所有属性的值
@property(nonatomic, copy) void (^animations)(QMUIDisplayLinkAnimation *animation, CGFloat curTime);
- (instancetype)initWithDuration:(NSTimeInterval)duration
easing:(QMUIAnimationEasings)easing
fromValue:(id)fromValue
toValue:(id)toValue
animation:(void (^)(id curValue))animation;
- (instancetype)initWithDuration:(NSTimeInterval)duration
easing:(QMUIAnimationEasings)easing
animations:(void (^)(QMUIDisplayLinkAnimation *animation, CGFloat curTime))animations;
/// 开始动画,无论是第一次做动画或者暂停之后再重新做动画,都调用这个方法
- (void)startAnimation;
/// 停止动画,CADisplayLink 对象会被移出
- (void)stopAnimation;
/// 即将开始做动画
@property(nonatomic, copy) void (^willStartAnimation)(void);
/// 动画结束
@property(nonatomic, copy) void (^didStopAnimation)(void);
@end
Undocumented
-
Undocumented
Declaration
Objective-C
@property(nonatomic, strong, readonly) CADisplayLink *displayLink
Swift
var displayLink: CADisplayLink! { get }
-
Undocumented
Declaration
Objective-C
@property(nonatomic, strong) id fromValue
Swift
var fromValue: Any! { get set }
-
Undocumented
Declaration
Objective-C
@property(nonatomic, strong) id toValue
Swift
var toValue: Any! { get set }
-
动画时间
Declaration
Objective-C
@property (nonatomic) NSTimeInterval duration;
Swift
var duration: TimeInterval { get set }
-
动画曲线
Declaration
Objective-C
@property (nonatomic) QMUIAnimationEasings easing;
Swift
var easing: QMUIAnimationEasings { get set }
-
是否需要重复,如果设置为YES,那么会无限重复动画,默认NO TODO: 目前功能上不支持小数点的循环次数,例如 0.5 1.5
Declaration
Objective-C
@property (nonatomic) BOOL repeat;
Swift
var `repeat`: Bool { get set }
-
延迟开始动画
Declaration
Objective-C
@property (nonatomic) NSTimeInterval beginTime;
Swift
var beginTime: TimeInterval { get set }
-
只有设置了repeat之后这个值才有用
Declaration
Objective-C
@property (nonatomic) float repeatCount;
Swift
var repeatCount: Float { get set }
-
只有设置了repeat之后这个值才有用。如果YES,则往前做动画之后自动往后做动画,默认NO
Declaration
Objective-C
@property (nonatomic) BOOL autoreverses;
Swift
var autoreverses: Bool { get set }
-
做动画的block,适用于只有一个属性需要做动画,curValue是经过计算后当前帧的值
Declaration
Objective-C
@property (nonatomic, copy) void (^)(id) animation;
Swift
var animation: ((Any?) -> Void)! { get set }
-
做动画的block,适用于多个属性做动画,需要在block里面自己计算当前帧的所有属性的值
Declaration
Objective-C
@property (nonatomic, copy) void (^) (QMUIDisplayLinkAnimation *, CGFloat) animations;
Swift
var animations: ((QMUIDisplayLinkAnimation?, CGFloat) -> Void)! { get set }
-
Undocumented
Declaration
Objective-C
- (instancetype)initWithDuration:(NSTimeInterval)duration easing:(QMUIAnimationEasings)easing fromValue:(id)fromValue toValue:(id)toValue animation:(void (^)(id curValue))animation;
Swift
init!(duration: TimeInterval, easing: QMUIAnimationEasings, fromValue: Any!, toValue: Any!, animation: ((Any?) -> Void)!)
-
Undocumented
Declaration
Objective-C
- (instancetype)initWithDuration:(NSTimeInterval)duration easing:(QMUIAnimationEasings)easing animations:(void (^)(QMUIDisplayLinkAnimation *animation, CGFloat curTime))animations;
Swift
init!(duration: TimeInterval, easing: QMUIAnimationEasings, animations: ((QMUIDisplayLinkAnimation?, CGFloat) -> Void)!)
-
开始动画,无论是第一次做动画或者暂停之后再重新做动画,都调用这个方法
Declaration
Objective-C
- (void)startAnimation;
Swift
func startAnimation()
-
停止动画,CADisplayLink 对象会被移出
Declaration
Objective-C
- (void)stopAnimation;
Swift
func stopAnimation()
-
即将开始做动画
Declaration
Objective-C
@property (nonatomic, copy) void (^)(void) willStartAnimation;
Swift
var willStartAnimation: (() -> Void)! { get set }
-
动画结束
Declaration
Objective-C
@property (nonatomic, copy) void (^)(void) didStopAnimation;
Swift
var didStopAnimation: (() -> Void)! { get set }
-
Undocumented
Declaration
Objective-C
+ (instancetype)springAnimateWithFromValue:(id)fromValue toValue:(id)toValue animation:(void (^)(id curValue))animation createdBlock:(void (^)(QMUIDisplayLinkAnimation *animation))createdBlock;
Swift
class func springAnimateWith(fromValue: Any!, toValue: Any!, animation: ((Any?) -> Void)!, createdBlock: ((QMUIDisplayLinkAnimation?) -> Void)!) -> Self!
-
Undocumented
Declaration
Objective-C
+ (instancetype)animateWithDuration:(NSTimeInterval)duration easing:(QMUIAnimationEasings)easing fromValue:(id)fromValue toValue:(id)toValue animation:(void (^)(id curValue))animation;
Swift
class func animate(withDuration duration: TimeInterval, easing: QMUIAnimationEasings, fromValue: Any!, toValue: Any!, animation: ((Any?) -> Void)!) -> Self!
-
Undocumented
Declaration
Objective-C
+ (instancetype)animateWithDuration:(NSTimeInterval)duration easing:(QMUIAnimationEasings)easing fromValue:(id)fromValue toValue:(id)toValue animation:(void (^)(id curValue))animation createdBlock:(void (^)(QMUIDisplayLinkAnimation *animation))createdBlock;
Swift
class func animate(withDuration duration: TimeInterval, easing: QMUIAnimationEasings, fromValue: Any!, toValue: Any!, animation: ((Any?) -> Void)!, createdBlock: ((QMUIDisplayLinkAnimation?) -> Void)!) -> Self!
-
Undocumented
Declaration
Objective-C
+ (instancetype)animateWithDuration:(NSTimeInterval)duration easing:(QMUIAnimationEasings)easing fromValue:(id)fromValue toValue:(id)toValue animation:(void (^)(id curValue))animation createdBlock:(void (^)(QMUIDisplayLinkAnimation *animation))createdBlock didStopBlock:(void (^)(QMUIDisplayLinkAnimation *animation))didStopBlock;
Swift
class func animate(withDuration duration: TimeInterval, easing: QMUIAnimationEasings, fromValue: Any!, toValue: Any!, animation: ((Any?) -> Void)!, createdBlock: ((QMUIDisplayLinkAnimation?) -> Void)!, didStop didStopBlock: ((QMUIDisplayLinkAnimation?) -> Void)!) -> Self!
-
Undocumented
Declaration
Objective-C
+ (instancetype)springAnimateWithAnimations:(void (^)(QMUIDisplayLinkAnimation *animation, CGFloat curTime))animations createdBlock:(void (^)(QMUIDisplayLinkAnimation *animation))createdBlock;
Swift
class func springAnimate(animations: ((QMUIDisplayLinkAnimation?, CGFloat) -> Void)!, createdBlock: ((QMUIDisplayLinkAnimation?) -> Void)!) -> Self!
-
Undocumented
Declaration
Objective-C
+ (instancetype)animateWithDuration:(NSTimeInterval)duration easing:(QMUIAnimationEasings)easing animations:(void (^)(QMUIDisplayLinkAnimation *animation, CGFloat curTime))animations;
Swift
class func animate(withDuration duration: TimeInterval, easing: QMUIAnimationEasings, animations: ((QMUIDisplayLinkAnimation?, CGFloat) -> Void)!) -> Self!
-
Undocumented
Declaration
Objective-C
+ (instancetype)animateWithDuration:(NSTimeInterval)duration easing:(QMUIAnimationEasings)easing animations:(void (^)(QMUIDisplayLinkAnimation *animation, CGFloat curTime))animations createdBlock:(void (^)(QMUIDisplayLinkAnimation *animation))createdBlock;
Swift
class func animate(withDuration duration: TimeInterval, easing: QMUIAnimationEasings, animations: ((QMUIDisplayLinkAnimation?, CGFloat) -> Void)!, createdBlock: ((QMUIDisplayLinkAnimation?) -> Void)!) -> Self!
-
Undocumented
Declaration
Objective-C
+ (instancetype)animateWithDuration:(NSTimeInterval)duration easing:(QMUIAnimationEasings)easing animations:(void (^)(QMUIDisplayLinkAnimation *animation, CGFloat curTime))animations createdBlock:(void (^)(QMUIDisplayLinkAnimation *animation))createdBlock didStopBlock:(void (^)(QMUIDisplayLinkAnimation *animation))didStopBlock;
Swift
class func animate(withDuration duration: TimeInterval, easing: QMUIAnimationEasings, animations: ((QMUIDisplayLinkAnimation?, CGFloat) -> Void)!, createdBlock: ((QMUIDisplayLinkAnimation?) -> Void)!, didStop didStopBlock: ((QMUIDisplayLinkAnimation?) -> Void)!) -> Self!