一、CADisplayLink是什么
CADisplayLink是一个定时器。
二、它的特点
CADisplayLink是根据屏幕刷新频率来调用方法,精度非常高,调用频率与屏幕刷新保持一致。
三、使用
1、实例及触发
//实例:官方文档只提供了一个实例方法
+(CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel;
//只实例化是不会触发的,还需要把它加到NSRunLoop中
-(void)addToRunLoop:(NSRunLoop *)runloop forMode:(NSString *)mode;
//使用
CADisplayLink *gameTime = [CADisplayLink displayLinkWithTarget:self selector:@selector(action)];
[gameTime addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
2、从runloop中删除
- (void)removeFromRunLoop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode;
3、销毁
- (void)invalidate;
//调用这个方法会销毁实例并从所有的runloop中移除
4、属性
//时间戳 获取上一次调用selector的时间戳
@property(readonly, nonatomic) CFTimeInterval timestamp;
//屏幕刷新时间 获取本次与上一次屏幕刷新的时间间隔
@property(readonly, nonatomic) CFTimeInterval duration;
//控制计时器是否暂停
@property(getter=isPaused, nonatomic) BOOL paused;
//事件触发间隔帧数 设置事件间隔几次屏幕刷新次数触发
@property(nonatomic) NSInteger frameInterval
//事件触发时间 = frameInterVal * duration
四、使用场景
1、做动画
2、视频播放
。。。以及各种需要无卡顿刷新的场景
ps:顺便提一句,CADisplayLink属于QuartzCore框架
QuartzCore是什么
这家伙就是核心动画CoreAnimation
因为
image.png这家伙只有这一个头文件。😂
网友评论