我的应用程序中有这段代码:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:imgView cache:YES];
imgView.image = img2;
[UIView commitAnimations];
但是在iOS 4.0及更高版本中不鼓励使用此方法,我应该使用transitionWithView:duration:options:animations:completion:
我无法让它正常工作。谁能帮我? THX!
答案 0 :(得分:19)
[UIView transitionWithView:imgView // use the forView: argument
duration:1 // use the setAnimationDuration: argument
options:UIViewAnimationOptionTransitionFlipFromLeft
// check UIViewAnimationOptions for what options you can use
animations:^{ // put the animation block here
imgView.image = img2;
}
completion:NULL]; // nothing to do after animation ends.
答案 1 :(得分:3)
我根据你的代码制作了这个功能:
- (void)flipCurrentView:(UIView*)oldView withNewView:(UIView*)newView reverse:(BOOL)reverse
{
newView.alpha = 0;
[UIView transitionWithView:newView
duration:1
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
oldView.alpha = 0;
newView.alpha = 1;
}
completion:^(BOOL finished){
if(reverse){
[self flipCurrentView:newView withNewView:oldView reverse:NO];
}
finished = YES;
}];
}