CADisPlayLink
程序员文章站
2024-01-14 13:36:40
...
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(@"测试");
}
上一篇: C语言判断是否回文字符串
推荐阅读
-
CADisPlayLink
-
[iOS]定时器NSTimer、CADisplayLink的内存管理
-
CADisplayLink以及定时器的使用
-
iOS之UITableView计时器的实现方式总结(NSTimer、DispatchSource、CADisplayLink)
-
iOS CAShapeLayer、CADisplayLink 实现波浪动画效果
-
CADisplayLink
-
iOS之UITableView计时器的实现方式总结(NSTimer、DispatchSource、CADisplayLink)
-
CADisplayLink以及定时器的使用
-
iOS CAShapeLayer、CADisplayLink 实现波浪动画效果
-
CADisplayLink