美文网首页
CADisplayLink的简单了解

CADisplayLink的简单了解

作者: 夜未殇 | 来源:发表于2017-11-14 16:07 被阅读0次

一、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

这家伙只有这一个头文件。

相关文章

网友评论

      本文标题:CADisplayLink的简单了解

      本文链接:https://www.haomeiwen.com/subject/nggsdxtx.html