我有一个viewController,在其中使用AVAudioPlayer播放声音,并使用NSTimer运行计时器2分钟,并使用播放动画序列

 [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];
                                                                                                         }];
                                                                                    }];
                                                               }];
                                          }];
                     }];


我要实现暂停和恢复功能,以便当用户按下“暂停”按钮时,音频,动画和计时器会暂停,而当用户单击“恢复”按钮时,它将从停顿的位置恢复。我知道该如何实现?

最佳答案

供AVAudioPlayer使用

[avplayerObject pause];
[avplayerObject play];

for timer:


您可以存储自计时器启动以来经过的时间...当计时器启动时,将日期存储在NSDate变量中。然后,当用户切换时...在NSDate类中使用方法timeIntervalSinceNow来存储已过去的时间...请注意,这将为timeIntervalSinceNow提供一个负值。用户返回时,使用该值设置适当的计时器。

用于查看动画check this one

关于ios - 暂停计时器,uiview动画和音频iOS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16210466/

10-15 15:18