我处理Interface Builder中的自动布局设置。我希望在运行时隐藏状态栏时不会偏移固定到顶部布局指南的视图。
我发现隐藏状态栏时myViewController.topLayoutGuide.length
从20更改为0。怎么预防呢?或者(作为解决方法)如何设置各种窗口大小的全屏视图,而无需针对顶部布局指南?
描述我情况的一些代码:
Log(@"frame: %@, top: %.0f", NSStringFromCGRect(myViewController.myView.frame), self.topLayoutGuide.length);
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
Log(@"frame: %@, top: %.0f", NSStringFromCGRect(myViewController.myView.frame), self.topLayoutGuide.length);
输出:
frame: {{40, 24}, {240, 40}}, top: 20
frame: {{40, 4}, {240, 40}}, top: 0
答案 0 :(得分:19)
topLayoutGuide属性是只读的,您不能阻止它更改。
您可以将您的商品固定在topLayoutGuide上,而不是超级视图。这应该可以解决你的问题。