隐藏UIStatusBar时导致视图更改的topLayoutGuide约束

时间:2014-08-11 19:37:36

标签: ios objective-c autolayout uistoryboard uistatusbar

我在UIViewController中设置UIStoryboard,可以隐藏其UIStatusBar。此VC中的视图都包含一个约束,使其保持相对于topLayoutGuide的位置。

我遇到一个问题,当隐藏状态栏时,所有子视图都会突然显示20像素。我在控制台上记录了topLayoutGuide值,看起来隐藏时它的长度从20变为0。

在保持此约束的同时,有什么方法可以防止子视图在隐藏状态栏时抖动20px吗?

1 个答案:

答案 0 :(得分:0)

topLayoutGuide的要点是它随状态栏动态移动。您可以尝试在视图控制器加载时抓取length的{​​{1}}属性,并创建一个使用该值作为其topLayoutGuide的约束。

仅当状态栏在加载时可见时才会起作用,如果状态栏变高,它将会中断,例如如果你打个电话一种更好的方法可能是将该值用作约束的常量,该约束将顶部空间固定为> =从顶部开始的高度,并在较低优先级设置等于该长度的约束,因此它可以如果需要,可以从屏幕顶部越远,但不能更近。