我有一个单独的视图应用程序(从iOS模板创建,没什么特别的)
有1个按钮:
- (IBAction)buttonWasTapped:(id)sender {
// Toggle status bar hidden property
BOOL hidden = [[UIApplication sharedApplication] isStatusBarHidden];
[[UIApplication sharedApplication] setStatusBarHidden:!hidden withAnimation:UIStatusBarAnimationFade];
}
我首先加载应用。
然后按下按钮。
这很好。我可以在顶部的黑色空间工作。然后再次点击按钮并旋转到横向。然后再次点击按钮。它看起来应该是这样的。
最后旋转回porttrait并点按按钮。
总之,问题是:
我做了一个真正的hacky workaround,但我不喜欢它,我相信如果Apple解决它会破坏它。
答案 0 :(得分:2)
我遇到了类似的问题,我的修复程序将会旋转到方向我会重新显示条形图, 并将其隐藏在旋转方向上(或使用带延迟的执行选择器再次隐藏) 发生了什么事情,当设备旋转时,视图占用所有可用空间,它也将填充用于包含状态栏的空间
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// A workaround to stop the rotation filling up the status bar space
// Show the status bar and then hide it straight after, (there is no flicker)
if ([[UIApplication sharedApplication] isStatusBarHidden])
{
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
double delayInSeconds = 0.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
});
}
if (!_controlsHidden) [self resetFadeoutTimer];
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
答案 1 :(得分:1)
您是否使用Xcode的Interface Builder(图形xib编辑器)通过搜索栏定义视图?如果是这样,请在界面构建器中选择视图,然后在右侧栏中选择属性检查器(图标看起来像滑块)。在“模拟指标”部分中,将“状态栏”值设置为“无”,在这种情况下为“灰色”以模拟应用程序的外观。这将调整视图的大小以适应状态栏。