13

CATransform3DMakeRotation で次の UIView アニメーションを使用すると、変換中に UIView の半分が消え、完了時に再び表示されます。これは、インターフェイス ビルダーのビュー階層で UIView の背後に UIImageView がある場合にのみ発生します。

[UIView animateWithDuration:1.0 delay:0.0 options:nil animations:^{
        myView.layer.transform = CATransform3DMakeRotation(M_PI,0.0,1.0,0.0);
    } completion:nil];

以下は、インターフェイス ビルダーのビュー レイアウトです。

Interface Builder のレイアウト

そして下のアニメーション結果。

ここに画像の説明を入力

2 番目の画像は、アニメーションが実行される前のもので、左半分が消えています。収縮した後、中心点を超えて成長すると、4 番目の画像に示すように、右側 (前の左側) が再び表示されます。

で背景画像を設定した場合

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"jeans.png"]];

アニメーションは期待どおりに完了します。

4

1 に答える 1

32

記録のために、答えは私のコメントにありました

imageView.layer.zPosition = -400;

あるいは、あなたがすることができます

myView.layer.zPosition = 400; // or some number greater than width/2

回転ビューの一部が背景ビューによって遮られているように見えます。中心点を中心に回転するため、その一部は負の z 空間に入り、背景の背後にあります。

だからから

------- imageView
------- myView

     / myView
    /
------- imageView
  /
 /
于 2012-10-29T22:24:48.907 に答える