0

我想在视图控制器中暂停和恢复计时器,它在主视图控制器中显示为子视图。按下主视图控制器中的播放/暂停按钮时,它将视图控制器显示为子视图并播放音频。

在视图控制器中有这个 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;

 }

当在主视图控制器中按下播放/暂停按钮时,我想暂停和恢复计时器。我怎样才能做到这一点。

4

2 回答 2

2
NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval:2.6
                                 target:self
                               selector:@selector(updateView:)
                               userInfo:nil
                                repeats:YES];

[myTimer invalidate];

/* 停止接收器再次触发并请求将其从运行循环中移除。*/

[myTimer fire];

/* 您可以使用此方法来触发重复计时器,而不会中断其常规触发时间表。如果计时器是非重复的,它会在触发后自动失效,即使它的预定触发日期尚未到来。*/

于 2013-02-19T15:05:27.300 回答
2

首先,您必须在接口文件中保留对计时器的引用:

NSTimer *myTimer;

在实现文件中,您可以简单地连接然后引用它:

myTimer = [NSTimer scheduledTimerWithTimeInterval:2.6
                             target:self
                           selector:@selector(updateView:)
                           userInfo:nil
                            repeats:YES];

停止定时器调用:

[myTimer invalidate];

重新开始:

[myTimer fire];

有关 NSTimer 类的更多信息,请参阅NSTimer 类参考。

于 2013-02-19T15:05:36.480 回答