重置视图

时间:2010-10-16 20:15:15

标签: iphone objective-c

当用户导航到另一个视图并返回原始视图时,我希望重置所有内容,就像他们第一次来到视图一样。

我能够在他们离开时停止播放音频,但不是动画方法。 我怎么能这样做?

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
        [audioIntro stop];
        [mainAudio stop];
}

这是动画代码:

- (void) firstAnimation {

        if (playSoundButton.enabled = NO || audioIntro.playing) {
                return;
        }

        UIViewAnimationOptions options = UIViewAnimationOptionCurveLinear;
        myImage.hidden = NO;
        myImage.alpha = 1.0;

        [UIView animateWithDuration:1.0 delay:12.0 options:options animations:^ 
        {
            setAnimationBeginsFromCurrentState:YES;

                tapImage.alpha = 0.0;

        }

                completion:^(BOOL finished){


        [self performSelector:@selector(secondAnimation) withObject:nil afterDelay:0.2];
        }
         ];
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

看起来有点hacky - 但我会尝试这个:

  1. 使用“旧样式”动画 - 即不使用块 - 使用“beginAnimation”,为动画设置animationID。

  2. 在viewWillDisappear方法中,再次使用相同的 animationID调用“beginAnimation”,但这一次:

    一个。将动画持续时间设置为ZERO 湾动画“到”您想要重置的位置。

  3. 在viewWillDisappear方法中设置某种kill-flag

  4. 使完成功能查找“kill flag” - 并且在“secondAnimation”标志内引发第二个动画,如果选择器设置了“kill flag”。

  5. (我有点不清楚 - 如果“完成”标志足以满足“杀戮旗帜” - 没有看到你的整个代码。