我正在写一些应用程序。我有一些自定义视图的课程。在视图中有一个定时器正在调用“setNeedsDisplayInRect”方法。为了动画的目的,我需要那个计时器非常令人反感(没有非常复杂的动画)。我已设置计时器的值:0.0001。那个价值不算太大吗?该应用程序正常使用它。
答案 0 :(得分:5)
请勿使用NSTimer
。使用CADisplayLink
。它将以设备的最佳速率运行。
像这样设置:
self.displayLink = [self.view.window.screen displayLinkWithTarget:self selector:@selector(setNeedsDisplayForMyView)];
[self.displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
并定义方法setNeedsDisplayForMyView
:
- (void)setNeedsDisplayForMyView
{
[self.view setNeedsDisplayInRect:self.dirtyRect];
}
答案 1 :(得分:0)
如果您正在制作动画,您是否尝试过Core Animation或UIView Animation?这可能会比使用计时器自己做动画更容易。