15

iOS 7 で導入された UITableViewController の topLayoutGuide および bottomLayoutGuide プロパティの使用方法を誰かが示すことができれば幸いです。ありがとうございます。

4

1 に答える 1

16

およびプロパティは UIViewController から継承topLayoutGuideれ、 UILayoutSupportプロトコルを実装します。これらは とともに使用するように設計されていますが、 を使用せずに直接使用することもできます。bottomLayoutGuideAutoLayoutAutoLayout

の場合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は の使用とまったく同じですがtopLayoutGuidebottomLayoutGuideはコンテンツの垂直方向の最低範囲を参照します。

于 2013-09-25T01:13:43.407 に答える