我在UIViewController
中设置UIStoryboard
,可以隐藏其UIStatusBar
。此VC中的视图都包含一个约束,使其保持相对于topLayoutGuide
的位置。
我遇到一个问题,当隐藏状态栏时,所有子视图都会突然显示20像素。我在控制台上记录了topLayoutGuide值,看起来隐藏时它的长度从20变为0。
在保持此约束的同时,有什么方法可以防止子视图在隐藏状态栏时抖动20px吗?
答案 0 :(得分:0)
topLayoutGuide
的要点是它随状态栏动态移动。您可以尝试在视图控制器加载时抓取length
的{{1}}属性,并创建一个使用该值作为其topLayoutGuide
的约束。
仅当状态栏在加载时可见时才会起作用,如果状态栏变高,它将会中断,例如如果你打个电话一种更好的方法可能是将该值用作约束的常量,该约束将顶部空间固定为> =从顶部开始的高度,并在较低优先级设置等于该长度的约束,因此它可以如果需要,可以从屏幕顶部越远,但不能更近。