2

IB で Autolayout をオンにしてデバイスを回転すると、以下のメソッドは呼び出されません。

willRotateToInterfaceOrientation:duration:

まず、上記の方法は自動レイアウトでうまくいきませんか? メソッドは Autolayout をオフにして呼び出されます。回転時にビューの背景画像を変更しようとしています。autolayout constaint をオンにしてそれを実現する方法がわかりませんか?

私もMoinによるプロシージャを使用しようとしましたが、巨大なビュー階層があり、メソッドはスーパービュー以降に呼び出され、他のメソッドには他のコードがたくさんあります。だから役に立たなかった

didRotateFromInterfaceOrientation  
4

2 に答える 2

1

-willRotateToInterfaceOrientation:duration:、ルート ビュー コントローラーとそのすべての子ビュー コントローラーで呼び出され、自動レイアウトで動作します。これらのメソッドを特定のビュー コントローラーで呼び出す場合は、ルート ビュー コントローラーの子ビュー コントローラーである必要があります。

ルートから最後のViewControllerまでの階層がどこかで壊れていることに気付くのにしばらく時間がかかりました。子ビューコントローラーとして追加し直す必要がありました。

于 2014-07-20T10:46:59.400 に答える
1

簡単な答え: AutoLayout で-willRotateToInterfaceOrientation:duration: 動作します。

長い答え: NIB を使用していると仮定すると、非常に多くの複合問題がうまくいかない可能性があります。このチェックリストをまとめました:

  1. Loaded nibで@JoshJusticeが推奨するようにIBでカスタムUIViewControllerを設定しましたが、ビューアウトレットは設定されていませんでした-InterfaceBuilderの新機能
  2. UIViewControllerで@nybonが推奨するように自動回転を適切に処理していますか?自動回転しません
  3. @NateFlink の iOS7 での 1 つのビュー コントローラーの自動回転plistの処理で推奨されているように、グローバルな向きを設定しましたか
  4. カスタム UIViewController-supportedInterfaceOrientationsが正しくない値で応答しますか? preferredInterfaceOrientationForPresentation で @AndrewHershberger による推奨される応答を参照してください。サポートされているインターフェイスの向きを返す必要があります (iOS 6)
于 2014-07-12T01:55:24.753 に答える