我已经用CADisplayLink替换了NSTimer。我让它正常工作,但它运行得太慢了。我怎么才能加快速度呢?这是我使用的代码:
在接口中,我声明了一个实例变量:
CADisplayLink *displayLink;在viewDidLoad中,我创建了一个对象:
displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(onTimer)];
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];被调用的方法是onTimer。所以我的问题是:我如何加快这个函数被调用的频率?
发布于 2014-05-27 17:33:06
CADisplayLink是一个定时器,它与显示器的刷新率绑定在一起。这是一个针对特定任务的特定工具:在不必要的情况下不要绘图。
如果您不需要这样做,只需在需要的时间间隔内使用NSTimer即可。
如果你需要根据刷新率以特定的时间间隔调用你的方法(例如,你需要在重新绘制之间做两次),你必须稍微修改你的调度器。
您需要关注两个属性:-[CADisplayLink timestamp]和-[CADisplayLink duration]。您可以根据这些属性计算下一次调用的时间。
发布于 2017-01-20 00:05:16
给其他人看的话。在某种程度上,实现这种效果是可能的。通过更改preferredFramesPerSecond属性。( iOS 10之前版本的frameInterval)。虽然,Kentzo说这应该只在特别需要的地方使用,这是正确的。否则,使用NSTimer。
https://stackoverflow.com/questions/23885638
复制相似问题