UIView transition animation does not work with transitionWithView:duration:options:animations:completion method
In iOS Documentation usage of beginAnimation-commitAnimation is discouraged. So for animations and transitions there are new methods that make use of ^blocks. However when I use transitionWithView:duration:options:animations:completion method I get no transition effects.So if I write:
[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];
it works bu开发者_JAVA技巧t if I do it the following way
[UIView transitionWithView:self.view duration:1.0 options
UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp
animations:^{
firstView.hidden = YES;
secondView.hidden = NO;
} completion:NULL
];
I do not get any transition effects. What am I missing?
OK, I've found the subtle detail everyone needs to take note of in order to get the animation and transitions work with the method available in iOS 4 and later.When specifying the animation/transition options for the method we must use the constants with the word "Option" in it. So instead of writing
UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp
we should write
UIViewAnimationOptionCurveEaseIn|UIViewAnimationOptionTransitionCurlUp
after fixing that the transition worked just fine
精彩评论