动画无法通过切换标签恢复

时间:2012-07-06 16:44:54

标签: iphone animation

我在这里看到了很多类似的问题,但没有一个问题符合我的要求。 反正:

我正在动画地图上的注释来上下移动。我通过在drawRect中调用此函数来完成此操作:

    - (void) wiggle {
      [UIView animateWithDuration:0.45 delay:0.0 options:UIViewAnimationCurveEaseInOut animations:^{
          [self.subView setFrame:CGRectMake(self.subView.frame.origin.x, self.subView.frame.origin.y+WIGGLE_DISTANCE, self.subView.frame.size.width, self.subView.frame.size.height)];
      } completion:^(BOOL finished) {
        if (finished)
          [UIView animateWithDuration:0.45 delay:0.0 options:UIViewAnimationCurveEaseInOut animations:^{
            [self.subView setFrame:CGRectMake(self.subView.frame.origin.x, self.subView.frame.origin.y-WIGGLE_DISTANCE, self.subView.frame.size.width, self.subView.frame.size.height)];
          } completion:^(BOOL finished) {if (finished) [self wiggle]; }];
      }];
    }

简而言之,它正在动画“子视图”,当它完成时,动画制作完成,并在完成时调用自身(继续摆动)。

这一切正常,直到我切换标签。当我返回此选项卡时,没有动画。我试过在viewController的'viewDidAppear'中的每个视图上调用'setNeedsDisplay',并且无法调用drawRect。那么我尝试直接从viewController的'viewDidAppear'调用'wiggle',并且函数DOES被调用,但它只是没有动画。有什么想法吗?

谢谢!

0 个答案:

没有答案