当用户导航到另一个视图并返回原始视图时,我希望重置所有内容,就像他们第一次来到视图一样。
我能够在他们离开时停止播放音频,但不是动画方法。 我怎么能这样做?
-(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];
}
];
}
感谢您的帮助。
答案 0 :(得分:1)
看起来有点hacky - 但我会尝试这个:
使用“旧样式”动画 - 即不使用块 - 使用“beginAnimation”,为动画设置animationID。
在viewWillDisappear方法中,再次使用相同的 animationID调用“beginAnimation”,但这一次:
一个。将动画持续时间设置为ZERO 湾动画“到”您想要重置的位置。
在viewWillDisappear方法中设置某种kill-flag
使完成功能查找“kill flag” - 并且不在“secondAnimation”标志内引发第二个动画,如果选择器设置了“kill flag”。
(我有点不清楚 - 如果“完成”标志足以满足“杀戮旗帜” - 没有看到你的整个代码。