Uitableview topLayoutGuide和bottomLayoutGuide UIViewController属性示例
如果有人能演示如何使用iOS 7中引入的UITableViewController的topLayoutGuide和bottomLayoutGuide属性,我将不胜感激。谢谢。topLayoutGuide和Uitableview topLayoutGuide和bottomLayoutGuide UIViewController属性示例,uitableview,ios7,Uitableview,Ios7,如果有人能演示如何使用iOS 7中引入的UITableViewController的topLayoutGuide和bottomLayoutGuide属性,我将不胜感激。谢谢。topLayoutGuide和bottomLayoutGuide属性继承自并实现协议。它们设计用于自动布局,但也可以直接使用,而无需使用自动布局 对于topLayoutGuide,该属性表示不希望出现在半透明或透明UIKit栏(如状态栏或导航栏)后面的内容的最高垂直范围。因此,如果视图控制器被推到UINavigationCo
bottomLayoutGuide
属性继承自并实现协议。它们设计用于自动布局
,但也可以直接使用,而无需使用自动布局
对于topLayoutGuide
,该属性表示不希望出现在半透明或透明UIKit栏(如状态栏或导航栏)后面的内容的最高垂直范围。因此,如果视图控制器被推到UINavigationController
堆栈上,topLayoutGuide
将告诉您状态栏和导航栏从屏幕顶部覆盖了多少个点。您可以使用此值将UIScrollView
中的内容滚动到导航栏的正下方,或确保视图中的其他内容不被UINavigationBar
覆盖
请记住,topLayoutGuide
的值取决于视图控制器以及它是否包含在另一个视图控制器中。从苹果的UIViewController
文档中:
约束此属性值的对象取决于
视图控制器是否为容器视图的子视图
控制器(如导航或选项卡栏控制器),如下所示:
•不在容器中的视图控制器视图控制器约束
此属性指示状态栏的底部(如果可见),或
else以指示视图控制器视图的上边缘
•容器视图控制器中的视图控制器不设置此设置
财产的价值。相反,容器视图控制器约束
要指示的值:
- 导航栏的底部,如果是 导航栏可见
- 状态栏的底部,如果只有 状态栏可见
- 视图控制器视图的上边缘(如果有) 状态栏和导航栏都不可见
UITextField
,以响应键盘的显示。我将文本字段移动到导航栏的正下方
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
指的是内容的最低垂直范围 我正在UIViewController的viewDidLoad中设置自动布局。当我运行CGFloat length=self.topLayoutGuide.length时;我得到的值是0。在哪里实现此消息?topLayoutGuide是一个动态生成的值。只有在视图控制器的视图添加到视图层次结构后,才有意义使用它。使用viewDidLoad将导致您在将视图添加到视图层次结构之前阅读topLayoutGuide,因此返回0。如果在UIViewController的子类中使用topLayoutGuide,最早可以可靠使用它的地方就是viewDidLayoutSubviews。如果在UIView的子类中使用它,则可以使用LayoutSubView。您可以在这里阅读所有内容:我还想指出,topLayoutGuide在某些情况下将返回0,如文档中所述。因此,重要的是,不要过早地解读它的价值。