首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改CADisplayLink的时间间隔

更改CADisplayLink的时间间隔
EN

Stack Overflow用户
提问于 2014-05-27 17:22:23
回答 2查看 2.3K关注 0票数 2

我已经用CADisplayLink替换了NSTimer。我让它正常工作,但它运行得太慢了。我怎么才能加快速度呢?这是我使用的代码:

在接口中,我声明了一个实例变量:

代码语言:javascript
复制
CADisplayLink *displayLink;

在viewDidLoad中,我创建了一个对象:

代码语言:javascript
复制
displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(onTimer)];
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];

被调用的方法是onTimer。所以我的问题是:我如何加快这个函数被调用的频率?

EN

回答 2

Stack Overflow用户

发布于 2014-05-27 17:33:06

CADisplayLink是一个定时器,它与显示器的刷新率绑定在一起。这是一个针对特定任务的特定工具:在不必要的情况下不要绘图。

如果您不需要这样做,只需在需要的时间间隔内使用NSTimer即可。

如果你需要根据刷新率以特定的时间间隔调用你的方法(例如,你需要在重新绘制之间做两次),你必须稍微修改你的调度器。

您需要关注两个属性:-[CADisplayLink timestamp]-[CADisplayLink duration]。您可以根据这些属性计算下一次调用的时间。

票数 4
EN

Stack Overflow用户

发布于 2017-01-20 00:05:16

给其他人看的话。在某种程度上,实现这种效果是可能的。通过更改preferredFramesPerSecond属性。( iOS 10之前版本的frameInterval)。虽然,Kentzo说这应该只在特别需要的地方使用,这是正确的。否则,使用NSTimer。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23885638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档