我怎样才能在两个UIView之间翻转?

时间:2012-11-07 22:03:33

标签: objective-c ios5 uiview xcode4 uiviewanimation

我正在使用两个UITextView个对象。每个UITextView代表闪存卡应用程序中单张卡的一面。就像使用普通闪存卡一样,我希望用户能够翻转卡片。我问如何在两个UIView对象之间切换,因为UITextViewUIView子类,所以同样的想法应该有用。

我正在寻找的动画看起来像this

上述示例的唯一问题是它使用了两个UIViewController个对象而UITextView不是UIViewController的子类,因此相同的原则不适用。

关于如何进行翻转动画的任何想法?

3 个答案:

答案 0 :(得分:4)

您可以使用UIView类方法+transitionFromView:toView:duration:options:completion:来完成此任务。您的文本视图都需要是常见超级视图的后代。使用选项UIViewAnimationOptionTransitionFlipFromLeft(或... FromRight)进行水平翻转。

答案 1 :(得分:0)

看起来您的问题已经回答here,只需调整转换以使其成为水平而非垂直翻转:

- (void)horizontalFlip {
    [UIView animateWithDuration:someDuration animations:^{
        yourView.layer.transform = CATransform3DMakeRotation(M_PI, 0.0, 1.0, 0.0);
    } completion:^(BOOL finished){
        // code to be executed when flip is completed
    }];
}

正如链接问题中所解释的那样,您可以使用M_PI_2进一步修改此操作,然后在第一个动画的完成块中换出UITextView并开始新的动画完成翻转。

不要忘记文件顶部的#import math.h#import <QuartzCore/Quartz.h>

答案 2 :(得分:0)

您可以先隐藏一个UITextView并显示另一个UITextView。要翻转它,您可以隐藏显示的UITextView并显示隐藏的UITextView。您还可以使用here解释的动画来创建翻转效果。