Iphone NSTimer对象的最佳值是什么?
我正在写一些应用程序。我有一些自定义视图的类。在视图中,有一个计时器正在调用“setNeedsDisplayInRect”方法。我需要的计时器是非常进攻的动画目的(并没有非常复杂的动画)。我已设置计时器的值:0.0001。这个值不是太大吗?应用程序正在使用它正常工作。不要为此使用Iphone NSTimer对象的最佳值是什么?,iphone,cocoa,core-animation,nstimer,Iphone,Cocoa,Core Animation,Nstimer,我正在写一些应用程序。我有一些自定义视图的类。在视图中,有一个计时器正在调用“setNeedsDisplayInRect”方法。我需要的计时器是非常进攻的动画目的(并没有非常复杂的动画)。我已设置计时器的值:0.0001。这个值不是太大吗?应用程序正在使用它正常工作。不要为此使用NSTimer。使用。它将以设备的最佳速率运行 设置如下: self.displayLink = [self.view.window.screen displayLinkWithTarget:self selector:
NSTimer
。使用。它将以设备的最佳速率运行
设置如下:
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];
}
不要为此使用
NSTimer
。使用。它将以设备的最佳速率运行
设置如下:
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];
}
如果您正在制作动画,您是否尝试过核心动画或UIView动画?这可能比使用计时器自己制作动画更容易一些。如果您正在制作动画,您是否尝试过核心动画或UIView动画?这可能比使用计时器自己制作动画要容易一些。你见过以每秒一万帧的速度渲染的动画吗?因为这正是您当前正在尝试做的…幸运的是,runloop和绘图系统都不允许您这样做,所以您只是在消耗您正在尝试的处理周期的一小部分。除此之外,请参见rob或Randall的答案,在螺丝刀合适的地方不要使用锤子。没错)考虑到这一点,将其更改为1.0/60.0您是否见过以每秒10000帧的速度渲染的动画?因为这正是您当前正在尝试做的…幸运的是,runloop和绘图系统都不允许您这样做,所以您只是在消耗您正在尝试的处理周期的一小部分。除此之外,请参阅rob或Randall的答案,并在螺丝刀合适的地方避免使用锤子。没错)考虑到这一点,将其更改为1.0/60.0