2012-11-07 75 views
2

我使用了兩個UITextView對象。每個UITextView代表閃存卡應用程序中單卡的一面。就像使用常規閃存卡時一樣,我希望用戶能夠翻轉卡片。我在問如何在兩個UIView對象之間翻轉,因爲UITextViewUIView子類,所以應該有相同的想法。如何在兩個UIView之間翻轉?

我在找的動畫看起來像this

上述示例唯一的問題是它使用了兩個對象UIViewControllerUITextView不是UIViewController的子類,所以相同的原則不適用。

關於如何做翻轉動畫的任何想法?

回答

4

您可以使用UIView類方法+transitionFromView:toView:duration:options:completion:來完成此操作。兩個文本視圖都需要是共同超級視圖的後代。使用選項UIViewAnimationOptionTransitionFlipFromLeft(或... FromRight)進行水平翻轉。

+0

這翻轉了整個屏幕,而不僅僅是UITextView。除此之外,它的作品。 – Mickster37

+2

如果你的UITextViews的普通超視圖是當前屏幕的主視圖,那麼是的,它會翻轉整個屏幕。普通的超級觀點是什麼?您可以通過引入另一個視圖作爲兩個文本視圖的父代以及您的根視圖的子視圖來避免翻轉整個屏幕。 – Tim

+0

智能修復,謝謝! – Mickster37

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翻轉,則在第一動畫的完成塊中換出UITextViews並開始新的動畫以完成翻轉。

不要忘了#import math.h#import <QuartzCore/Quartz.h>在您的文件的頂部!

0

你可以先隱藏一個UITextView並顯示另一個UITextView。要翻轉它,你可以隱藏顯示的UITextView並顯示隱藏的UITextView。您也可以使用解釋爲here的動畫來創建翻轉效果。