iOS中的CADisplayLink定时器
生活随笔
收集整理的這篇文章主要介紹了
iOS中的CADisplayLink定时器
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
iOS中的CADisplayLink定時(shí)器
? ? 說到定時(shí)器,在iOS中最常用的為NSTimer類,其實(shí)CADisplayLink類在某些場(chǎng)景下使用,要比NSTimer類更加適合。首先CADisplayLink也是一種定時(shí)器,并且其和屏幕的刷新率始終保持一致(很多時(shí)候會(huì)使用CADisplayLink來檢測(cè)屏幕的幀率)。由于CADisplayLink的這種特性,使用它來實(shí)現(xiàn)流暢的動(dòng)畫效果非常合適。
? ? CADisplayLink類非常簡(jiǎn)單,解析如下:
//創(chuàng)建CADisplayLink對(duì)象 /* 需要注意 定時(shí)器對(duì)象創(chuàng)建后 并不會(huì)馬上執(zhí)行 需要添加到runloop中 */ + (CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel; //將當(dāng)前定時(shí)器對(duì)象加入一個(gè)RunLoop中 - (void)addToRunLoop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode; //將當(dāng)前定時(shí)器對(duì)象從一個(gè)RunLoop中移除 如果這個(gè)Runloop是定時(shí)器所注冊(cè)的最后一個(gè) 移除后定時(shí)器將被釋放 - (void)removeFromRunLoop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode; //將定時(shí)器失效掉 調(diào)用這個(gè)函數(shù)后 會(huì)將定時(shí)器從所有注冊(cè)的Runloop中移除 - (void)invalidate; //當(dāng)前時(shí)間戳 @property(readonly, nonatomic) CFTimeInterval timestamp; //距離上次執(zhí)行所間隔的時(shí)間 @property(readonly, nonatomic) CFTimeInterval duration; //預(yù)計(jì)下次執(zhí)行的時(shí)間戳 @property(readonly, nonatomic) CFTimeInterval targetTimestamp; //設(shè)置是否暫停 @property(getter=isPaused, nonatomic) BOOL paused; //設(shè)置預(yù)期的每秒執(zhí)行幀數(shù) 例如設(shè)置為1 則以每秒一次的速率執(zhí)行 @property(nonatomic) NSInteger preferredFramesPerSecond CA_AVAILABLE_IOS_STARTING(10.0, 10.0, 3.0); //同上 @property(nonatomic) NSInteger frameIntervalCA_AVAILABLE_BUT_DEPRECATED_IOS (3.1, 10.0, 9.0, 10.0, 2.0, 3.0, "use preferredFramesPerSecond");我的博客即將搬運(yùn)同步至騰訊云+社區(qū),邀請(qǐng)大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=29qwh7m53g4kc
轉(zhuǎn)載于:https://my.oschina.net/u/2340880/blog/1840972
總結(jié)
以上是生活随笔為你收集整理的iOS中的CADisplayLink定时器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信支付教程系列之公众号支付
- 下一篇: SpringBoot 修改banner信