2

ビューで奇妙な回転動作をデバッグしようとしています。ビュー階層を調べると、UINavigationTransitionView のインスタンスで回転が発生していることがわかります。このビューは何ですか?UINavigationController に関連していますか?

私の階層は次のようになります。

MPMovieView
  UIView
    UIViewControllerWrappper
      UINavigationTransitionView
        UILayoutContainerView
          UIWindow
4

2 に答える 2

7

AFAIK UINavigationTransitionViewは、UINavigationControllerの子ビューをアニメーション化するために使用されるクラスです。通常、1つまたは2つのUIViewControllerWrapperViewが含まれ、それぞれに実際のUIViewController.viewが含まれます。UINavigationControllerをサブクラス化し、pushViewControllerAnimated:をオーバーライドすると、[super pushViewControllerAnimated:]を呼び出す前後に階層をログに記録でき、VCがrectにプッシュされていることがわかります。 {0、20、320、480}から{-320、20、320、480}に変更します。これはプライベートAPIであるため、動作を理解するのは良いことですが、iOSのバージョン間で変更される可能性が非常に高いため、すべきではありません。この動作に基づいてローテーションソリューションを作成します。実際のローテーションの問題について新しい質問を投稿してください。プライベートAPIを使用せずに問題を解決するお手伝いをします

于 2012-08-21T18:31:27.783 に答える
0

多くの場合、Apple はパブリック クラス内でプライベート クラスを使用して、内部動作を管理します。これはそれらのケースの 1 つです。UINavigationTranstionView というパブリック クラスはありません。他の場所でバグを探すか、Apple に責任があると確信しているのであれば、レーダーを提出します。コードを引き続き確認することにした場合は、そのコードの一部と問題の説明をここに投稿することを検討してください。

于 2012-07-20T12:57:12.510 に答える