2

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

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

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

关于如何制作翻转动画的任何想法?

4

3 回答 3

4

您可以使用 UIView 类方法+transitionFromView:toView:duration:options:completion:来完成此操作。您的两个文本视图都需要是公共超级视图的后代。使用选项UIViewAnimationOptionTransitionFlipFromLeft(或 ... FromRight)获得水平翻转。

于 2012-11-07T22:50:22.923 回答
0

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

于 2013-01-24T07:23:37.170 回答
0

看起来您的问题已经在这里得到解答,只需调整变换以使其水平翻转而不是垂直翻转:

- (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,然后在第一个动画的完成块中换出UITextViews 并开始一个新动画以完成翻转。

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

于 2012-11-07T22:21:04.717 回答