2

UITextView2つのオブジェクトを使用しています。それぞれUITextViewがフラッシュカードアプリケーションの単一のカードの側面を表します。通常のフラッシュカードを使用するときと同じように、ユーザーがカードをめくることができるようにしたいと思います。UITextViewサブクラスであるため、 2つのUIViewオブジェクトを切り替える方法を尋ねているUIViewので、同じアイデアが機能するはずです。

私が探しているアニメーションはこんな感じです

上記の例の唯一の問題は、2つのUIViewControllerオブジェクトを利用しUITextView、のサブクラスではないUIViewControllerため、同じ原則が適用されないことです。

フリップアニメーションを行う方法について何かアイデアはありますか?

4

3 に答える 3

4

UIViewクラスメソッド+transitionFromView:toView:duration:options:completion:を使用してこれを実現できます。両方のテキストビューは、共通のスーパービューの子孫である必要があります。オプションUIViewAnimationOptionTransitionFlipFromLeft(または... FromRight)を使用して、水平方向に反転します。

于 2012-11-07T22:50:22.923 に答える
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 に答える
0

最初に1つのUITextViewを非表示にして、別のUITextViewを表示できます。反転するには、表示されているUITextViewを非表示にし、非表示のUITextViewを表示します。ここで説明するアニメーションを使用して、フリップ効果を作成することもできます。

于 2013-01-24T07:23:37.170 に答える