0

我正在使用 scheduleTimerWithTimeInterval: 每 N 秒执行一次动画。

在某些情况下,我想重新安排时间,以便 N 重新开始重新计算,即

schduleTimerWithTimeInterval: 5

5秒后执行动作

5秒后执行动作

自上次操作后经过 2 秒,然后发生了某事 X

自 X 后 5 秒,执行操作(即自上次执行操作后不是 5 秒)

5秒后执行动作

5秒后执行动作

那么当 X 发生时,是否可以重置 scheduleTimerWithTimeInterval?

4

1 回答 1

1

所以是这样的:

self.timer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(takeAShot) userInfo:nil repeats:YES];

然后当 x 发生时:

[self.timer invalidate];
self.timer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(takeAShot) userInfo:nil repeats:YES];

或任意数量的重复和非重复计时器方式

于 2013-07-09T16:41:31.903 回答