0

各軸を中心に UIView を 180 度回転させる一種の「フリップ」アニメーションを作成しようとしていますが、目的の効果が得られません。ここに私がこれまでに持っているものがあります:

[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{     
        CATransform3D tX= CATransform3DIdentity;
        tX.m34 = 1.0 / -500;
        CATransform3D tY= CATransform3DIdentity;
        tY.m34 = 1.0 / -500;
        CATransform3D tZ= CATransform3DIdentity;
        tZ.m34 = 1.0 / -500;

        tX = CATransform3DRotate(tX, M_PI, 1.0f, 0.0f, 0.0f);
        tY = CATransform3DRotate(tY, M_PI, 0.0f, 1.0f, 0.0f);
        tZ = CATransform3DRotate(tZ, M_PI, 0.0f, 0.0f, 1.0f);

        self.flipView.layer.transform = CATransform3DConcat(tX, CATransform3DConcat(tY, tZ));            
    }

ただし、これは、互いに打ち消し合っているかのように、アニメーションを実行しているようには見えません。これはかなり簡単な作業のようですが、これら 3 つのアニメーション条件を組み合わせる方法がわかりません。どんな助けでも大歓迎です!ありがとう

4

1 に答える 1

0

3 つの軸のそれぞれを中心に半回転 (180° または π ラジアン) 回転しても、全体として変化はありません (3 つの回転変換を連結すると恒等変換になります)。

1 つの軸だけを中心に回転させて、その動作を確認してください。

于 2013-03-23T21:47:16.857 に答える