iOS中的CADisplayLink定时器

简介: iOS中的CADisplayLink定时器

说到定时器,在iOS中最常用的为NSTimer类,其实CADisplayLink类在某些场景下使用,要比NSTimer类更加适合。首先CADisplayLink也是一种定时器,并且其和屏幕的刷新率始终保持一致(很多时候会使用CADisplayLink来检测屏幕的帧率)。由于CADisplayLink的这种特性,使用它来实现流畅的动画效果非常合适。

CADisplayLink类非常简单,解析如下:

//创建CADisplayLink对象
/*
需要注意 定时器对象创建后 并不会马上执行 需要添加到runloop中
*/

  • (CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel;

//将当前定时器对象加入一个RunLoop中

  • (void)addToRunLoop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode;

//将当前定时器对象从一个RunLoop中移除 如果这个Runloop是定时器所注册的最后一个 移除后定时器将被释放

  • (void)removeFromRunLoop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode;

//将定时器失效掉 调用这个函数后 会将定时器从所有注册的Runloop中移除

  • (void)invalidate;

//当前时间戳
@property(readonly, nonatomic) CFTimeInterval timestamp;
//距离上次执行所间隔的时间
@property(readonly, nonatomic) CFTimeInterval duration;
//预计下次执行的时间戳
@property(readonly, nonatomic) CFTimeInterval targetTimestamp;
//设置是否暂停
@property(getter=isPaused, nonatomic) BOOL paused;
//设置预期的每秒执行帧数 例如设置为1 则以每秒一次的速率执行
@property(nonatomic) NSInteger preferredFramesPerSecond CA_AVAILABLE_IOS_STARTING(10.0, 10.0, 3.0);
//同上
@property(nonatomic) NSInteger frameInterval
CA_AVAILABLE_BUT_DEPRECATED_IOS (3.1, 10.0, 9.0, 10.0, 2.0, 3.0, "use preferredFramesPerSecond");
我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=29qwh7m53g4kc

目录
相关文章
|
API 调度 iOS开发
iOS定时器 你真的会使用吗?
定时器的使用是软件开发基础技能,用于延时执行或重复执行某些方法。定时器 你真的会使用吗?iOS定时器详解
592 0
IOS_后台定时器
IOS_后台定时器
116 0
|
Serverless iOS开发
iOS定时器的应用
iOS定时器的应用
154 0
iOS定时器的应用
|
iOS开发
iOS中的定时器
iOS中定时器有三种,分别是NSTimer、CADisplayLink、dispatch_source,下面就分别对这三种计时器进行说明
169 0
|
iOS开发
iOS NSTimer 定时器用法总结
iOS NSTimer 定时器用法总结
251 0
|
iOS开发 Serverless
iOS - OC NSTimer 定时器
前言 @interface NSTimer : NSObject @interface CADisplayLink : NSObject 作用 在指定的时间执行指定的任务。
1358 0
|
iOS开发 Swift
iOS - Swift NSTimer 定时器
前言 public class NSTimer : NSObject 作用 在指定的时间执行指定的任务。 每隔一段时间执行指定的任务。 1、定时器的创建 当定时器创建完(不用 scheduled 的,添加到 runloop 中)后,该定时器将在初始化时指定的 ti 秒后自动触发。
2073 0
|
iOS开发
iOS中定时器NSTimer的使用
<p style="margin:10px auto; font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:13px; line-height:24px"> 1、初始化</p> <p style="margin:10px auto; font-family:Verdana,Geneva,Arial,Helve
1403 0
|
22天前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
83 1