Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uitableview topLayoutGuide和bottomLayoutGuide UIViewController属性示例_Uitableview_Ios7 - Fatal编程技术网

Uitableview topLayoutGuide和bottomLayoutGuide UIViewController属性示例

Uitableview topLayoutGuide和bottomLayoutGuide UIViewController属性示例,uitableview,ios7,Uitableview,Ios7,如果有人能演示如何使用iOS 7中引入的UITableViewController的topLayoutGuide和bottomLayoutGuide属性,我将不胜感激。谢谢。topLayoutGuide和bottomLayoutGuide属性继承自并实现协议。它们设计用于自动布局,但也可以直接使用,而无需使用自动布局 对于topLayoutGuide,该属性表示不希望出现在半透明或透明UIKit栏(如状态栏或导航栏)后面的内容的最高垂直范围。因此,如果视图控制器被推到UINavigationCo

如果有人能演示如何使用iOS 7中引入的UITableViewController的topLayoutGuide和bottomLayoutGuide属性,我将不胜感激。谢谢。

topLayoutGuide和
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,如文档中所述。因此,重要的是,不要过早地解读它的价值。