1

Interface Builder内には、次のものがあります

UIViewController
-- View
---- TableView

私のUIViewControllerで設定しました

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}

IBにある他のViewControllerもあります。ここで何が欠けていますか?回転させる唯一の方法は、変換メソッドを使用する場合です。

4

4 に答える 4

3

万が一、タブベースのアプリでテーブルビューを使用していますか?その場合、タブバーコントローラーのすべてのビューコントローラーがランドスケープモードをサポートしている場合にのみ、ランドスケープモードをサポートするビューを取得できます。

それ以外に、ビューがランドスケープモードをサポートしてはならない理由はわかりません。

于 2009-03-26T14:23:01.820 に答える
1

問題は自動サイズ設定にあります。より具体的には、Interface Builder で自動サイズ変更がクリックされていることを確認してから、Size Inspector で、テーブル ビューのすべてのスーパービューであるテーブル ビューの上部、左、右に赤い矢印が塗りつぶされていることを確認し、2 つを選択します。内部矢印。

質問者が実際にメインビューのサブビューにテーブルビューを持っていたのだろうかと思っています。ビュー階層で 1 レベル深いテーブル ビューでこの動作が見られます。

  • メインビュー
    • サブビュー
      • テーブル ビュー

デフォルトでは、メイン ビューには自動サイズ調整矢印が正しく設定されていますが、追加のビューを追加すると、正しく設定されません。

複数のビュー コントローラの問題に関する質問への回答: UIViewController は UIView のデリゲートではないことに注意してください。実際、一連のイベントは逆方向に進んでいるように見えます。最初に、システムは自動回転を確認し、UIViewControllers にそれを通知します。UIViewControllers の shouldAutoresize が yes を返す場合、UIViewControllers はメイン ビューのサイズを変更します。サブビューが正しく設定されていれば、メイン ビューのサイズを変更すると、サブビューのサイズが自動的に変更されます。

Apple docs によると、ビューのさまざまな部分を制御する複数のビューコントローラーを使用しないでください-たとえば、メインビューのサブビューにあるテーブルビュー用の個別のテーブルビューコントローラー-イベントチェーンをいじるからです-ここではどのようになるでしょうか。それが役立つかどうかはわかりません。

于 2011-07-18T02:34:00.533 に答える
0

これを試したところ、期待どおりに動作します。詳細を提供する必要があると思います。私の経験では、ビューが回転に「失敗」した場合、それはどこかのビュー コントローラーがそうしないように指示しているためです。すべてのビュー コントローラーが shouldAutorotateToInterfaceOrientation から正しい値を返していることを確認します。

于 2009-03-25T18:36:41.453 に答える
0

ストーリーボードを使用している場合、VC に UITableview が含まれている場合は、シーンで AutoLayout がオフになっているかどうかを確認してください。

于 2014-12-18T09:26:05.783 に答える