誰かがiOS 7で導入されたUITableViewControllerのtopLayoutGuideとbottomLayoutGuideプロパティの使い方を示すことができたら、感謝します。topLayoutGuideとbottomLayoutGuide UIViewControllerのプロパティの例
答えて
topLayoutGuide
とbottomLayoutGuide
プロパティはUIViewControllerから継承され、UILayoutSupportプロトコルを実装しています。それらはAutoLayout
と一緒に使用するように設計されていますが、AutoLayout
を使用せずに直接使用することもできます。
topLayoutGuide
の場合、プロパティは、半透明または透明なUIKitバー(ステータスバーまたはナビゲーションバーなど)の後ろに表示したくないコンテンツの垂直方向の最大範囲を示します。したがって、ビューコントローラがUINavigationController
スタックにプッシュされている場合、topLayoutGuide
は、ステータスバーとナビゲーションバーが画面の上から何点表示されるかを示します。 UIScrollView
のこの値のスクロールコンテンツをナビゲーションバーのすぐ下に、またはビュー内の他のコンテンツがUINavigationBar
で覆われていないことを確認することができます。
topLayoutGuide
の値は、ビューコントローラとそれが別のビューコントローラに含まれているかどうかに依存します。 AppleのUIViewController
ドキュメントから:
として、このプロパティの値はビューコントローラは、コンテナビュー コントローラの子は、(例えば、ナビゲーションやタブバーコントローラとして)であるか否か に依存制約オブジェクト
•コンテナビューコントローラ内にないビューコントローラは、このプロパティを表示する場合はステータスバーの下部を示すためにこのプロパティを制限し、ビューコントローラのビューの上端を示す場合は を指定します。
•コンテナビューコントローラ内のビューコントローラは、このプロパティを0に設定しません。 プロパティの値。もしのみ ナビゲーションバーは、ステータスバーの底
表示されている場合、
ナビゲーションバーの底部:代わりに、コンテナビューコントローラが示す 値を制約します もステータスバーやナビゲーションバーが表示されている場合、ステータスバーは、
ビューコントローラのビューの上端見える
キーボードの表示に応じてUITextField
を移動するために使用するコードです。テキストフィールドをナビゲーションバーのすぐ下に移動します。 bottomLayoutGuide
を使用
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
を使用して似ています。
- 1. UIViewControllerのサブクラスにtopLayoutGuideとbottomLayoutGuideを実装することは可能でしょうか?
- 2. 他のUIViewController内のプロパティとしてUIViewControllerを設定する
- 3. Cocoa Touch UIViewControllerプロパティとクラスデザイン
- 4. ios 7 bottomLayoutGuide with uitabbarcontroller
- 5. UIViewControllerのprepareForSegueのプロパティへのアクセス
- 6. F#の例外と内部例外プロパティ
- 7. のUIViewController(またはのUITableViewController)とのtableViewプロパティ
- 8. UIViewControllerとそのすべてのサブクラスにプロパティを追加する
- 9. 別のUIViewControllerのプロパティとしてUIViewControllerを設定するのは悪い考えですか?
- 10. xcode:プロパティ 'title' 'コピー'属性がスーパークラス 'UIViewController'プロパティと一致しません
- 11. TabBarController NAvigationControllerとのUIViewController
- 12. UIViewControllerとUIWebView
- 13. UIViewとUIViewControllerデザインパターン
- 14. OCMockとUIViewController
- 15. UIViewControllerとUITableViewControllerの違い
- 16. UISplitViewControllerとモーダルUIViewControllerの問題
- 17. AlertController - UIViewControllerとの競合
- 18. iPhoneのサブビューデザイン(UIViewとUIViewController)
- 19. UIViewController:ドリルダウンとドリルアップの検出
- 20. UITableViewControllerとUIViewControllerの比較
- 21. オブジェクト初期化子とプロパティは例外
- 22. バイナリ値を設定するときのプロパティの例外
- 23. ナビゲーションビューのUIViewControllerとデータ受信の問題
- 24. UIViewControllerの子ビューとしてのUINavigationController
- 25. UIViewControllerのビューフレームとnavigationController.view.frameの違いは?
- 26. iPhone/iPad UINavigationControllerプロパティはUIViewController内にありますか?
- 27. ベースUIViewControllerクラスからプロパティを継承できません
- 28. 別のUIViewController
- 29. hidesBottomBarWhenPush UIViewControllerの
- 30. モノタッチUIViewControllerのリリースメソッド
私はUIViewControllerのviewDidLoadでAutoLayoutを設定しています。私がCGFloatの長さ= self.topLayoutGuide.lengthを実行すると、私は値0を得ます。私はこのメッセージをどこで実装しますか? – AveLeon
topLayoutGuideは動的に生成される値です。ビューコントローラのビューがビュー階層に追加された後でのみ使用することは意味があります。 viewDidLoadを使用すると、ビューがビュー階層に追加される前にtopLayoutGuideを読み取るため、0が返されます。UIViewControllerのサブクラス内でtopLayoutGuideを使用している場合、確実に使用できる最も初期の場所はviewDidLayoutSubviewsです。 UIViewのサブクラスで使用している場合は、layoutSubviewsを使用できます。 http://goo.gl/Tn6moX –
ドキュメントで説明されているように、場合によってはtopLayoutGuideが0を返すことを指摘したいと思います。だから、あまりにも早くその価値観を読まないことが重要です。 –