AppleのサイトのWindows and Views概念ガイドの「自動サイズ調整の動作」のセクションを参照してください。これは、Interface Builderを使用せずに複雑な変換を手動で実装することなく、ポートレートからランドスケープへの自動ローテーションを達成し、また戻す方法を説明しています。
カスタムコンテンツを回転させるとスクロールを無効にするよう
、shouldAutorotateToInterfaceOrientation:interfaceOrientation
を参照してください、willRotateToInterfaceOrientation:duration:
、およびUIViewController
でdidRotateFromInterfaceOrientation:
。これらのメソッドを実装して、回転イベントを傍受し、移動する方向を確認し、カスタム図面とプロパティを設定することができます。
編集
あなたのコメントを受けて、私はTable View Programming Guideから、アップルからこのビットを見つけた:
のUITableViewは大きなコンテンツ とビューの スクロール動作を定義する UIScrollViewの、から継承ウィンドウのサイズよりも大きくなります。 UITableViewは、スクロール の動作を再定義して、垂直スクロールを許可します のみ。
おそらくAppleは彼らのヒューマンインターフェイスガイドラインに反対するテーブルビューの水平スクロールをみなしています。 UITableView
をサブクラス化すれば、スクロールの振る舞いを再定義できるかどうかは疑問ですが、それはおそらく試行錯誤の作業の大部分を占めるでしょう。実際にこれを達成することができれば、ここにいる多くの人があなたのやり方に興味を持っていると確信しています。他の人の解決策を見つけようとしばらく探していたが、何も見つけられなかった。
また、実際にはHIGを壊していると仮定して、アプリはアプリストアにアプリを許可しないことがあります。
感謝しますが述べたように、のUITableViewは横長モードで水平方向のスクロールを提供していません。したがって、私がオートローテーションを使用した場合は、上下にスクロールするだけでなく、左には<->右にスクロールします。 – user82383