动画视图之间切换的过渡动画

时间:2013-02-11 14:36:46

标签: ios animation view

我目前正在编写ios6编程的初学者指南。直到现在,当我试图在两个视图之间来回切换动画时,它一直很好。练习的最终目标是让每个视图看起来都在另一个视图的背面(如硬币/纸张的两侧)。

然而,当我使用书中给出的代码时,只有一个动画激活,但书中说代码应该适用于两者。

我多次使用我的代码,以确保我已经完成了正确的工作,而且我无法区分我所拥有的代码与本书中的代码之间的区别。我知道我正在做的事情很简单(或者更有可能不做),但我没有经验可以找到它。

非常感谢任何帮助。

代码:

- (IBAction)switchViews:(id)sender
{
[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:1.25];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

if (self.yellowViewController.view.superview == nil) {
    if (self.yellowViewController == nil) {
        self.yellowViewController = [[BIDYellowViewController alloc] initWithNibName:@"YellowView" bundle:nil];
    }

    // This one doesn't work
    [UIView setAnimationTransition:UIViewAnimationOptionTransitionFlipFromRight forView:self.view cache:YES];

    [self.blueViewController.view removeFromSuperview];
    [self.view insertSubview:self.yellowViewController.view atIndex:0];
}
else 
{
    if (self.blueViewController == nil) {
        self.blueViewController = [[BIDBlueViewController alloc] initWithNibName:@"BlueView" bundle:nil];
    }

    // This one works
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];

    [self.yellowViewController.view removeFromSuperview];
    [self.view insertSubview:self.blueViewController.view atIndex:0];
}
[UIView commitAnimations];
}

1 个答案:

答案 0 :(得分:2)

因为您使用的是UIViewAnimationOptionTransitionFlipFromRight而不是UIViewAnimationTransitionFlipFromRight