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

目录
相关文章
IOS_后台定时器
IOS_后台定时器
131 0
|
API 调度 iOS开发
iOS定时器 你真的会使用吗?
定时器的使用是软件开发基础技能,用于延时执行或重复执行某些方法。定时器 你真的会使用吗?iOS定时器详解
633 0
|
iOS开发
iOS中的定时器
iOS中定时器有三种,分别是NSTimer、CADisplayLink、dispatch_source,下面就分别对这三种计时器进行说明
189 0
|
Serverless iOS开发
iOS定时器的应用
iOS定时器的应用
171 0
iOS定时器的应用
|
iOS开发
iOS NSTimer 定时器用法总结
iOS NSTimer 定时器用法总结
269 0
|
iOS开发 Swift
iOS - Swift NSTimer 定时器
前言 public class NSTimer : NSObject 作用 在指定的时间执行指定的任务。 每隔一段时间执行指定的任务。 1、定时器的创建 当定时器创建完(不用 scheduled 的,添加到 runloop 中)后,该定时器将在初始化时指定的 ti 秒后自动触发。
2100 0
|
iOS开发 Serverless
iOS - OC NSTimer 定时器
前言 @interface NSTimer : NSObject @interface CADisplayLink : NSObject 作用 在指定的时间执行指定的任务。
1381 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
1423 0
|
4天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
23 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡

热门文章

最新文章

  • 1
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    24
  • 2
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    33
  • 3
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    28
  • 4
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 5
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    143
  • 6
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    234
  • 7
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    90
  • 8
    深入探索iOS开发中的SwiftUI框架
    143
  • 9
    ios样式开关按钮jQuery插件
    58
  • 10
    Android与iOS生态差异深度剖析:技术架构、开发体验与市场影响####
    75