0

私はこれに何日も取り組んできましたが、クラックできません。イベントのシーケンスは次のとおりです。

  • ランドスケープ (正しいとしましょう) では、ユーザーは「編集」ボタンを押します。
  • 縦向きのみのモーダル インターフェイスがスライドインします。その shouldAutorotateToInterfaceOrientation は、縦向きの場合のみ yes を返します。
  • デバイスは、ポートレート モードであると確信します。
  • 問題 1: ユーザーが実際に縦向きモードに回転せずにインターフェースを閉じた場合、デバイスは横向きであると報告しますが (実際はそうです)、インターフェースは縦向きに配置されます。
  • 問題 2: ユーザーが縦向きに回転すると、インターフェイスが再びレイアウトされません。
  • 問題 3: (そして、これは奇妙です) 編集ボタンが押された場所と同じ横方向 (右) に回転して戻すと、ステータス バーが横方向に戻りますが、それ以外は何も変わりません。私のすべてのものは、縦向きモードでレイアウトされたままです。もう一方 (左) の横向きに回転すると、完璧に機能します。

デバイスが実際にある向きのレイアウトをレイアウト エンジンに強制的にやり直す方法が必要です。

UIView - layoutSubviews、 - setNeedsLayout、および -layoutIfNeeded には効果がありません。

助けてくれてありがとう。

4

1 に答える 1

0

iBooks (2.x) と同じように、インターフェイスの向きを強制的に縦向きにし + (void)attemptRotationToDeviceOrientationます。このようにして、ステップ 1 で問題の芽を摘むことができます。

于 2012-04-10T01:29:27.820 に答える