0

mainviewcontrollerでサブビューとして表示されるviewcontrollerでタイマーを一時停止および再開したい。メインビューコントローラの再生/一時停止ボタンを押すと、ビューコントローラがサブビューとして表示され、オーディオが再生されます。

このNSTimerをViewControllerに入れます

 [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で再生/一時停止ボタンが押されたときにタイマーを一時停止して再開したい。どうやってやるの。

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 に答える