0

私は使用してサウンドを再生しAVAudioPlayer、タイマーを使用して2分間実行しNSTimer、アニメーションのシーケンスを使用して再生しているviewControllerを持っています

 [UIView animateWithDuration:2.0
                          delay:0.0
                        options:UIViewAnimationOptionCurveLinear
                     animations:^{
                         //Rolling the Man's tongue out
                         _cooling2ManImage.alpha = 1.0;
                         _cooling3ManImage.alpha = 0.0;
                     }
                     completion:^(BOOL boolValue){
                         [UIView animateWithDuration:2.0
                                               delay:0.0
                                             options:UIViewAnimationOptionCurveLinear
                                          animations:^{
                                              //showing the Arrow image and translating the arrow to the mouth
                                              _cooling1ArrowImage.alpha = 1.0;
                                              _cooling1ArrowImage.transform = CGAffineTransformMakeTranslation(0,-110);
                                          }
                                          completion:^(BOOL boolValue){
                                              [UIView animateWithDuration:1.5
                                                                    delay:0.0
                                                                  options:UIViewAnimationOptionCurveLinear
                                                               animations:^{
                                                                   //Hiding the arrow
                                                                   _cooling1ArrowImage.alpha = 0.0;
                                                               }
                                                               completion:^(BOOL boolValue){
                                                                   _cooling1ArrowImage.transform = CGAffineTransformMakeTranslation(0,0);
                                                                   [UIView animateWithDuration:2.0
                                                                                         delay:0.0
                                                                                       options:UIViewAnimationOptionCurveLinear
                                                                                    animations:^{
                                                                                        //Roll the tongue back in
                                                                                        _cooling2ManImage.alpha = 0.0;
                                                                                        _cooling3ManImage.alpha = 1.0;
                                                                                    }
                                                                                    completion:^(BOOL boolValue){
                                                                                        //Show the arrow and translate it
                                                                                        [UIView animateWithDuration:2.0
                                                                                                              delay:0.0
                                                                                                            options:UIViewAnimationOptionCurveLinear
                                                                                                         animations:^{
                                                                                                             _cooling3ArrowImage.alpha = 1.0;
                                                                                                             CGAffineTransform scale;
                                                                                                             CGAffineTransform translate;
                                                                                                             scale = CGAffineTransformMakeScale(2.5, 2.5);
                                                                                                             translate = CGAffineTransformMakeTranslation(0, 40);
                                                                                                             _cooling3ArrowImage.transform = CGAffineTransformConcat(scale, translate);
                                                                                                             _cooling3ArrowImage.alpha = 0.0;
                                                                                                         }
                                                                                                         completion:^(BOOL boolValue){
                                                                                                             [UIView animateWithDuration:2.0
                                                                                                                                   delay:0.0
                                                                                                                                 options:UIViewAnimationOptionCurveLinear
                                                                                                                              animations:^{
                                                                                                                                  _cooling2ManImage.alpha = 0.0;
                                                                                                                                  _cooling3ManImage.alpha = 1.0;
                                                                                                                                  _cooling1ArrowImage.alpha = 0.0;
                                                                                                                                  _cooling3ArrowImage.alpha = 0.0;
                                                                                                                                  _cooling3ArrowImage.transform = CGAffineTransformMakeTranslation(0,0);
                                                                                                                                  _cooling3ArrowImage.transform = CGAffineTransformMakeScale(1,1);
                                                                                                                                  if (count <= 6 ) {
                                                                                                                                      [self startAnimation1];
                                                                                                                                      count += 1;
                                                                                                                                      NSLog(@"%i",count);
                                                                                                                                  }
                                                                                                                              }
                                                                                                                              completion:nil];
                                                                                                         }];
                                                                                    }];
                                                               }];
                                          }];
                     }];

ユーザーが「一時停止」ボタンを押すと、オーディオ、アニメーション、タイマーが一時停止し、ユーザーが再開ボタンを押すと、一時停止した場所から正確に再開するように、一時停止と再開機能を実装する必要があります。どうすればこれを達成できますか?

4

1 に答える 1

1

AVAudioPlayer 用

[avplayerObject pause];
[avplayerObject play];

for timer:

タイマーが開始してから経過した時間を保存できます... タイマーが開始すると、日付が NSDate 変数に保存されます。次に、ユーザーが切り替えると... NSDateクラスのtimeIntervalSinceNowメソッドを使用して、経過した時間を保存します...これにより、timeIntervalSinceNowに負の値が与えられることに注意してください。ユーザーが戻ってきたら、その値を使用して適切なタイマーを設定します。

ビューのアニメーションについては、これをチェックしてください

于 2013-04-25T09:05:02.043 に答える