我处理在Interface Builder中设置的自动布局。当我在运行时隐藏状态栏时,我不想偏移固定到顶部布局指南的视图。iOS7隐藏状态栏但不调整顶部布局指南
我发现当隐藏状态栏时,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
不完全清楚你想达到的目标。您是否试图让视图在固定位置显示元素,而不管状态栏是否显示?或者这是iOS6/7切换问题?如果在布局组件vs运行时结果时导致问题,也可以将状态栏隐藏在IB中。 – Ben
我在运行时隐藏状态栏,并在那个时刻UI变化。原因在于'topLayoutGuide'。状态栏隐藏时,我想保持UI位置。 – brigadir
您是否正在显示视图并且 - 然后 - 摆脱状态栏,或者您是否告诉状态栏在显示视图之前不显示? – Ben