更改CADisplayLink的区间
我用CADisplayLink
replace了NSTimer
。 我有它正常工作,但它运行得太慢了。 我怎么能把这个加快呢? 这是我正在使用的代码:
在接口中我声明了一个实例variables:
CADisplayLink *displayLink;
在viewDidLoad中创build对象:
displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(onTimer)]; [displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
被调用的方法是onTimer
。 所以我的问题是:我怎么加快这被称为多久?
CADisplayLink
是绑定到显示刷新率的计时器。 这是一个具体任务的具体工具:不要画时,不必要的。
如果你不需要这个,只需要用你需要的任何时间间隔来使用NSTimer。
如果你需要在某些特定的时间间隔调用你的方法,这取决于刷新率(例如你需要在重新绘制之间做两次),你必须稍微修改你的调度器。
您关心的属性有两个: -[CADisplayLink timestamp]
和-[CADisplayLink duration]
。 您可以根据这些属性计算下次通话的时间。
对于任何人在这里看。 达到这个效果有些可能。 通过改变preferredFramesPerSecond
属性。 ( frameInterval
以前的frameInterval
)。 虽然,肯佐是正确的说这应该只用于特别要求的地方。 否则,使用NSTimer。