【CALayer-时钟练习-CADisplayLink Objective-C语言】

本文介绍了Objective-C中如何使用CADisplayLink来替代NSTimer,以实现更精确的定时任务。CADisplayLink是一个以屏幕刷新率触发的时钟机制,大约每秒执行60次,确保了绘图代码与视图刷新同步。文章详细讲解了CADisplayLink的原理和使用方法,并提供了代码示例,展示了如何创建和添加到主运行循环中。此外,还探讨了屏幕刷新的概念和动画连续性的原理。
摘要由CSDN通过智能技术生成

一、我们接着来看,这个CADisplayLink啊,

通知

1.刚才我们说那个时间呢,差上1秒钟的样子,然后呢,我们现在呢,用这个叫做CADisplayLink的东西,来解决,用这个类,来解决啊,

我们说,NSTimer,是跑到这儿了以后,一秒钟以后,

通知

它才会执行,这个timeChange方法,真正的时间,不知道到底是多少,

所以呢,我们现在呢,解决办法,是什么,思路,是这个样子的,就相当于是,我现在,这个方法啊,我1秒钟调用一次,

通知

如果我现在,1毫秒调用一次,那么这个时间,肯定,我一直是实时获取的,那么,肯定跟你这个时间,是一致的,

那我每一毫秒,都去取你这个时间,所以呢,它肯定是,没问题的,这是最笨的方法啊,

2.接下来,我们来说这个CADisplayLink,

通知

它呢,也是一种计时器,

CADisplayLink,是一种以屏幕刷新频率触发的时钟机制,

也就是说,屏幕每刷新一次,它就调一次,

每秒钟大约执行60次左右,

它呢,是CADisplayLink,是屏幕刷新的时候,会去调用,

我们说,我们这个屏幕,你看起来,好像,鼠标从这儿移动到这儿,屏幕是一直都在刷新的,屏幕它是有刷新的,如果你快速的移动鼠标,它看起来好像在这儿一下、在这儿一下、在这儿一下、移动的很快,实际上,屏幕它是有刷新的,

就跟用手机尝试着去拍比较老的电视,电视会出现很多很色的波纹,这个是为什么,是因为你相机的刷新频率,跟你的电视的刷新频率,是不一样的,所以会造成这么样的一个情况,

屏幕实际上,是都在刷新的啊,

现在你用iPhone,去拍笔记本的屏幕,应该不会出现这个效果了,因为笔记本的刷新频率,和,iPhone的刷新频率,应该都是1秒钟60次左右,

现在的设备,基本上看不到了啊,

3.然后呢,CADisplayLink,它也是一种计时器,

通知

它呢,可以使绘图代码,与,视图的刷新频率,保持一致,

而NSTimer,是无法保证计时器触发的准确的时间,

好,我们这个就相当于什么,相当于是把这个精度,给它缩小了一点儿,好,我们1秒钟调60次,这个方法,相当于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值