天天看點

CADisPlayLink

1.CADisPlayLink

系統級定時器 ,父類NSObject.他的調用頻率和裝置螢幕重新整理頻率相同。

和NSTimer一樣也需要RunLoop支援。

2.相關API

建立
 +(CADisPlayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel

将計時器加入到runloop中,必須加入到runloop中才有作用
 -(void)addToRunLoop:(NSRunLoop*)runloop forMode:(NSRunLoopMode)mode;
 
将計時器從runloop中删除
-(void)rmoveFromRunloop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode;

銷毀定時器
-(void)invalidate;


常用屬性
duration 兩次螢幕重新整理的時候間隔,通過此f值g可以拿到螢幕的重新整理頻率,蘋果一般是60hz(一秒60次)是個估值,

NSInteger  frameInterval  多少次螢幕重新整理後才調用一次方法 10以後被廢棄,預設重新整理一次調用一次

timestamp 螢幕顯示的上一幀的時間戳,是CoreAnimation使用的時間格式

 targetTimestamp 螢幕顯示的下一幀時間戳


paused 是否暫停計時器

 preferredFramesPerSecond 一秒内執行多次方法 預設60

           

demo

CADisplayLink *disLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(test)];
    [disLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    //每秒鐘調用多次 預設60.
    disLink.preferredFramesPerSecond = 10;
    //是否暫停
    disLink.paused = NO;

-(void)test{
    
    NSLog(@"測試");
    
}