1

我想做一些图形元素消失,移动背景图像并出现新的。问题是在背景移动动画完成之前出现新的背景移动。我没有在相关问题中看到一个好的答案,所以我会很感激任何帮助。伪代码:

-(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];

}

4

2 回答 2

6

.hidden 可能无法设置动画,但 .alpha 可以。在动画中使用 .alpha 来控制可见性。

于 2013-06-06T13:47:30.343 回答
0

您现在可能已经找到了解决方案,但这是我在完成块方面遇到的一个小问题。我使用了 -animateWithDuration:animations:completion: 方法,但没有调用完成,因为我认为我正在执行另一个中断动画流程的动作。就我而言,一遍又一遍地调用相同的动画。小心完成块。我仍然没有完全依赖它们。

于 2013-12-25T21:03:11.217 回答