7

CATransition を使用して UIView のサブビューをスライドさせています。しかし問題は、CATransition が常に画面全体に表示されることです。また、遷移中に重なり合うウィンドウに別の UI 要素があるため、混乱しているように見えます。UIView フレームでトランジションのフレームを制限するにはどうすればよいですか? UIView の clipToBounds を YES に設定しようとしました。実際には役に立ちません。

4

1 に答える 1

1

これについて 100% 確信があるわけではありませんが、CATransitionが画面全体に適用されることについては間違っていると思います。アニメーションを追加するビューに適用されます。

アイデアは、実際に遷移したいビューの親に遷移を適用することです。したがって、次の構造があるとします。

  • UIViewController
    • ビュー (UIViewController のメイン ビュー)
      • 移行中のビュー

あなたがする必要があるのは、次のように、メインの UIViewController ビューと実際のターゲット ビューの間に「保持」または「コンテナー」ビューを追加することです。

  • UIViewController
    • ビュー (UIViewController のメイン ビュー)
      • 「コンテナ」ビュー <-- ここでトランジションを適用
        • 移行中のビュー

トランジションをコンテナ ビューに適用すると、必要に応じてクリップできます。それでも範囲外になる場合は、含まれているビューで clipsToBounds をオンにするか、レイヤーの maskToBounds プロパティをオンにしてみてください。

于 2013-03-08T09:27:42.737 に答える