繁体   English   中英

如何在两个UIView之间切换?

[英]How can I flip between two UIView?

我正在使用两个UITextView对象。 每个UITextView代表闪存卡应用程序中单个卡的侧面。 就像使用常规闪存卡一样,我希望用户能够翻转存储卡。 我要问如何在两个UIView对象之间切换,因为UITextViewUIView子类,因此相同的想法应该起作用。

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

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

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

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

看来您的问题已在此处得到解答,只需调整转换使其变为水平翻转即可,而不是垂直翻转:

- (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>

您可以先隐藏一个UITextView,然后显示另一个UITextView。 要翻转它,您可以隐藏显示的UITextView并显示隐藏的UITextView。 您也可以使用此处说明的动画来创建翻转效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM