1

CATransform3Dについて1つの問題があります。

ラベルBを含むビューAがあります。Bのレイヤー位置はAの中心です。Bは通知メッセージを表示するために使用されます。Aを180度回転させたいのですが、もちろんBのテキストは上下逆になります。だから私もBを180度回転させなければなりません。すべてが単純に見え、実際にはシミュレーターでは正常に機能します。

しかし、デバイスにロードすると、AとBは回転しましたが、Bの位置が変更されました。今、私はBの半分しか見ることができず、残りの半分はAから出ています。

私の推測では、Aを回転させると、Bは180度反転したAの座標系に関連しているため、Bの位置が変更されます。

しかし、誰かがこの問題を解決する方法を知っているかどうか、またはあなたたちがより良いアプローチ方法を持っているかどうかを知りたいです。

どうもありがとうございます。

アップデート

なぜBの位置がずれているのかはまだわかりませんが、同じアニメーションを実装する別の方法を思いつきました。少し注意が必要です。

重要なのはanimation.autoreverse、Piでラベルのスーパービューを回転させると、ラベルのテキストが上下逆に回転することです。つまり、私が行ったのは、スーパービューをPi / 2で回転させ、同じ期間と設定を維持することでしたautoreverse = YES。これにより、スーパービューがPi / 2で回転し、次に回転して初期状態に戻ります。その結果、ビューはまったく回転していませんが、ユーザーの視界では回転しています。

4

1 に答える 1

0

ビューのサブレイヤーとサブビューは、2倍のアニメーション(特にアルファと中央の変更)に常に適切に応答するとは限らないことがわかりました。必要な場合は(通常よりも少し高価なので)、UIViewAnimationOptionAllowsAnimatedContentを使用します。これにより、アニメーション化された「スナップショット」の代わりに再描画が強制されます。

于 2012-04-20T04:07:30.037 に答える