iOS 7 で導入された UITableViewController の topLayoutGuide および bottomLayoutGuide プロパティの使用方法を誰かが示すことができれば幸いです。ありがとうございます。
1 に答える
およびプロパティは UIViewController から継承さtopLayoutGuide
れ、 UILayoutSupportプロトコルを実装します。これらは とともに使用するように設計されていますが、 を使用せずに直接使用することもできます。bottomLayoutGuide
AutoLayout
AutoLayout
の場合topLayoutGuide
、このプロパティは、半透明または透明な UIKit バー (ステータス バーやナビゲーション バーなど) の背後に表示したくないコンテンツの最大垂直範囲を示します。そのため、View Controller がUINavigationController
スタックにプッシュされている場合topLayoutGuide
、ステータス バーとナビゲーション バーが画面の上部から何ポイントをカバーしているかがわかります。この値を使用して、 のコンテンツをUIScrollView
ナビゲーション バーのすぐ下までスクロールしたり、ビュー内の他のコンテンツが で覆われていないことを確認したりできますUINavigationBar
。
の値はtopLayoutGuide
、View Controller と、それが別の View Controller に含まれているかどうかに依存することに注意してください。AppleのUIViewController
ドキュメントから:
このプロパティの値を制限するオブジェクトは、次のように、ビュー コントローラーがコンテナー ビュー コントローラー (ナビゲーションまたはタブ バー コントローラーなど) の子であるかどうかによって異なります。
• コンテナ ビュー コントローラ内にないビュー コントローラは、このプロパティを制約して、表示されている場合はステータス バーの下部を示し、そうでない場合はビュー コントローラのビューの上端を示します。
• コンテナ ビュー コントローラ内のビュー コントローラは、このプロパティの値を設定しません。代わりに、コンテナー ビュー コントローラーは値を制約して、次のことを示します。
ナビゲーション バーが表示されている場合は、ナビゲーション バーの下部
ステータス バーのみが表示されている場合は、ステータス バーの下部
ステータスバーもナビゲーションバーも表示されていない場合は、View Controller のビューの上端
UITextField
これは、キーボードの表示に応じてa を移動するために使用するコードです。テキストフィールドをナビゲーション バーのすぐ下に移動します。
CGFloat length = self.topLayoutGuide.length;
_feedback.frame = CGRectMake(_feedback.frame.origin.x, length + 5.0, _feedback.frame.size.width, _feedback.frame.size.height);
の使用bottomLayoutGuide
は の使用とまったく同じですがtopLayoutGuide
、bottomLayoutGuide
はコンテンツの垂直方向の最低範囲を参照します。