我想在viewcontroller中暂停和恢复计时器,它在mainviewcontroller中显示为子视图。按下主视图控制器中的播放/暂停按钮,它将视图控制器显示为子视图,并播放音频。
在视图控制器中使用此NSTimer
[NSTimer scheduledTimerWithTimeInterval:2.6
target:self
selector:@selector(updateView:)
userInfo:nil
repeats:YES];
- (void)updateView:(NSTimer *)theTimer
{
if (index < [textArray count])
{
self.textView.text = [self.textArray objectAtIndex:index];
self.imageView.image = [self.imagesArray objectAtIndex:index];
index++;
} else {
index = 0;
}
我想在mainviewcontroller中按下播放/暂停按钮时暂停和恢复计时器。我怎么能这样做。
答案 0 :(得分:2)
NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval:2.6
target:self
selector:@selector(updateView:)
userInfo:nil
repeats:YES];
[myTimer invalidate];
/ * 阻止接收器再次发射并请求将其从运行循环中移除。 * /
[myTimer fire];
/ * 您可以使用此方法触发重复计时器,而不会中断其常规点火计划。如果计时器不重复,则在触发后它会自动失效,即使其计划的触发日期尚未到达。 * /
答案 1 :(得分:2)
首先,您必须在接口文件中保留计时器的引用:
NSTimer *myTimer;
在实现文件中,您只需连接然后引用它:
myTimer = [NSTimer scheduledTimerWithTimeInterval:2.6
target:self
selector:@selector(updateView:)
userInfo:nil
repeats:YES];
停止定时器通话:
[myTimer invalidate];
重新开始:
[myTimer fire];
有关NSTimer类的详细信息,请参阅NSTimer Class Reference。