美文网首页
CADisplayLink的简单了解

CADisplayLink的简单了解

作者: 夜未殇 | 来源:发表于2017-06-23 16:44 被阅读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/gwpccxtx.html