iOS - 计时器NSTimer 和CADisplayLink用法

时间:2021-08-09 00:07:30
NSTimer
1> 人为控制刷新频率
2> 对刷新速度要求不高,适合慢刷新
3> 创建timer
// 返回一个新的timer,但是不会开始计时,需要调用fire方法
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
// 返回一个新的timer,会马上开始计时
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
4> 停止计时器(只要计时器停止了,以后不能再次开始计时)
- (void)invalidate;



CADisplayLink
1> 包含QuartzCore框架
2> 固定刷新频率(1秒钟刷新60次)
3> 对刷新速度要求高,适合快刷新
4> 创建displaylink
// 返回一个CADisplayLink计时器对象,1秒内会调用60次target的sel方法,并且将CADisplayLink当做参数传入
+ (CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel;
5> 开始计时
- (void)addToRunLoop:(NSRunLoop *)runloop forMode:(NSString *)mode;
6> 停止计时
- (void)invalidate;
7> 刷帧间隔
@property(readonly, nonatomic) CFTimeInterval duration;
8> 控制暂停或者继续
@property(getter=isPaused, nonatomic) BOOL paused;