我想在我的 iOS v5 通用应用程序中切换状态栏。
但发现似乎其他人有 UIViews(在我的情况下,子视图添加到主视图)如果然后旋转设备(我正在使用模拟器)仅回收隐藏状态栏留下的 20px
我的观点是以编程方式完成的。
我尝试了一些通过谷歌搜索找到的建议,但似乎都没有奏效。即在IB“使用全屏”中更改自动调整大小/掩码、wantsFullScreenLayout、setNeedsLayout。
我终于意识到我正在将我的视图 框架高度设置 为0,并将其边界高度设置为[[UIScreen mainScreen] applicationFrame] size.height
我想出的是:将视图框架高度设置 为-20,并将其边界高度设置为[[UIScreen mainScreen] applicationFrame] size.height+20
在 viewDidLoad 中。
CGRect theDeviceRect= [[UIScreen mainScreen] applicationFrame];
newMap.frame = CGRectMake(0, -20, theDeviceRect.size.width, theDeviceRect.size.height+20);
我在willAnimateRotationToInterfaceOrientation:委托中也有这个。
现在当我切换状态栏时:
- (void) toggleStatusBarAction:(id)sender{
BOOL istathidden= [[UIApplication sharedApplication] isStatusBarHidden];
[[UIApplication sharedApplication] setStatusBarHidden:!istathidden withAnimation:UIStatusBarAnimationFade];
}
一切都按预期工作。但我想看看我的解决方案是好是坏,以及我是否遗漏了什么?:
提前谢谢了。MH