6

在 iOS 文档中,不鼓励使用 beginAnimation-commitAnimation。因此,对于动画和过渡,有一些利用 ^blocks 的新方法。但是,当我使用 transitionWithView:duration:options:animations:completion 方法时,我没有任何过渡效果。所以如果我写:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
                       forView:self.view cache:YES];

firstView.hidden = YES;
secondView.hidden = NO;
[UIView commitAnimations];

它有效,但如果我按照以下方式进行

[UIView transitionWithView:self.view duration:1.0 options 
      UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp
        animations:^{
          firstView.hidden = YES;
          secondView.hidden = NO;
         } completion:NULL
         ];

我没有得到任何过渡效果。我错过了什么?

4

1 回答 1

18

好的,我找到了每个人都需要注意的细微细节,以便让动画和过渡与 iOS 4 及更高版本中可用的方法一起工作。当为方法指定动画/过渡选项时,我们必须使用常量其中“选项”一词。所以不要写

UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp

我们应该写

UIViewAnimationOptionCurveEaseIn|UIViewAnimationOptionTransitionCurlUp

在修复过渡工作正常之后

于 2011-09-20T04:35:01.370 回答