我想做一些图形元素消失,移动背景图像,然后会出现新的图像元素。问题是当背景移动时,在背景移动动画完成之前出现新的背景。 我没有在相关问题中看到一个好的答案,所以我将不胜感激任何帮助。 伪代码:
-(void)method1 {
[UIView animateWithDuration:0.6
delay:0.0 options:UIViewAnimationOptionCurveEaseIn
animations:^{
self.setThisOne.hidden = YES;
self.setThisAnother.hidden = YES;
}completion:^(BOOL finished) {
[UIView animateWithDuration:0.6
delay:0.3
options: UIViewAnimationOptionCurveEaseIn
animations:^{ self.background.frame = myFrame; //Move background image
} completion:^(BOOL finished){
if (finished) {
[self method2];
}
}
];
}];
}
-(void)method2 {
[UIView animateWithDuration:0.2
delay:0.3
options: UIViewAnimationOptionBeginFromCurrentState
animations:^{
self.aButtonsAppear.hidden = NO;
self.moreElementsApeear.hidden = NO
} completion:nil];
}
答案 0 :(得分:6)
.hidden可能不具有动画效果,但.alpha是。在动画中使用.alpha来控制可见性。
答案 1 :(得分:0)
你现在可能已经找到了一个解决方案,但这里有一个完整块的问题。我使用了-animateWithDuration:animations:completion:方法但是没有调用完成,因为我认为我正在执行另一个中断动画流的动作。在我的情况下,一遍又一遍地调用相同的动画。完成块时要小心。我仍然不完全依赖它们。