1.实现如下的动画效果:代码地址:https://pan.baidu.com/s/1utCyF-laNS39dOxaHN8y_g
CADisplayLink:类似于timer,但是是通过屏幕的刷新来触发的
//初始化方法,没有时间参数因为时间被固定为1/60秒,repeat被固定为YES。
+ (CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel;
//把指定的receiver(这里是displayLink来调用)添加到指定的runloop和mode上,在remove之前是不会被移除的。
- (void)addToRunLoop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode;
- (void)removeFromRunLoop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode;
//把整一个displayLink从所有的runloop modes中给remove下来,破除循环引用,(retain target),
- (void)invalidate;
@property(readonly, nonatomic) CFTimeInterval timestamp;//当前触发点时间(不是timer从0开始的时间,不能直接拿这个时间来用)
@property(readonly, nonatomic) CFTimeInterval duration;//两次触发之间的时间间隔
@property(readonly, nonatomic) CFTimeInterval targetTimestamp CA_AVAILABLE_IOS_STARTING(10.0, 10.0, 3.0);
@property(getter=isPaused, nonatomic) BOOL paused;//设置Yes可以把displayLink停掉
@property(nonatomic) NSInteger frameInterval
CA_AVAILABLE_BUT_DEPRECATED_IOS (3.1, 10.0, 9.0, 10.0, 2.0, 3.0, "use preferredFramesPerSecond");//这个displayLink是显示了多少个frame之后才触发,默认是1个(每显示一个frame触发一次,也就是每1/60秒触发一次)
@property(nonatomic) NSInteger preferredFramesPerSecond CA_AVAILABLE_IOS_STARTING(10.0, 10.0, 3.0);