CATransition を使用して UIView のサブビューをスライドさせています。しかし問題は、CATransition が常に画面全体に表示されることです。また、遷移中に重なり合うウィンドウに別の UI 要素があるため、混乱しているように見えます。UIView フレームでトランジションのフレームを制限するにはどうすればよいですか? UIView の clipToBounds を YES に設定しようとしました。実際には役に立ちません。
2494 次
1 に答える
1
これについて 100% 確信があるわけではありませんが、CATransitionが画面全体に適用されることについては間違っていると思います。アニメーションを追加するビューに適用されます。
アイデアは、実際に遷移したいビューの親に遷移を適用することです。したがって、次の構造があるとします。
- UIViewController
- ビュー (UIViewController のメイン ビュー)
- 移行中のビュー
- ビュー (UIViewController のメイン ビュー)
あなたがする必要があるのは、次のように、メインの UIViewController ビューと実際のターゲット ビューの間に「保持」または「コンテナー」ビューを追加することです。
- UIViewController
- ビュー (UIViewController のメイン ビュー)
- 「コンテナ」ビュー <-- ここでトランジションを適用
- 移行中のビュー
- 「コンテナ」ビュー <-- ここでトランジションを適用
- ビュー (UIViewController のメイン ビュー)
トランジションをコンテナ ビューに適用すると、必要に応じてクリップできます。それでも範囲外になる場合は、含まれているビューで clipsToBounds をオンにするか、レイヤーの maskToBounds プロパティをオンにしてみてください。
于 2013-03-08T09:27:42.737 に答える