在iOS文档中,不鼓励使用beginAnimation-commitAnimation.因此,对于动画和过渡,有一些新方法可以使用^块.但是,当我使用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 ];
我没有任何过渡效果.我错过了什么?
解决方法
好的,我已经找到了每个人都需要注意的微妙细节,以便使用iOS 4及更高版本中可用的方法来处理动画和过渡.当为方法指定动画/过渡选项时,我们必须使用常量其中的“选项”一词.所以不要写作
UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp
我们应该写
UIViewAnimationoptionCurveEaseIn|UIViewAnimationoptionTransitionCurlUp
在确定转换工作正常后