0

我将我的 iPhone 和 xcode 升级到 iOS7 和 XCODE 5。在此之后,我注意到的第一件事是状态栏与应用程序的视图区域重叠。

我通读了 stackoverflow 上发布的各种解决方案,例如将 plist 文件与 UIViewControllerBasedStatusBarAppearance 设置为 NO 等。似乎没有什么对我有用。我花了将近4天的时间研究它,但无法解决。

我现在想知道有一个类似 iOS 6 的视图,我们在顶部显示一个黑色区域,或者完全摆脱状态栏,或者在 iOS 7 上执行此操作的确切方法是什么。

任何帮助将不胜感激。

4

3 回答 3

1

只需将视图的 y 坐标设置为 20。

CGRect frame = [self.view frame];
frame.origin.y = 20;
[self.view setFrame:frame];

我没有对此进行测试,但它可能会起作用:

UIView *statusBarBack = [[UIView alloc] initWithFrame:CGRectMake(0, -20, 320, 20)];
[statusBarBack setBackgroundColor:[UIColor blackColor]];
[self.view addSubview:statusBarBack];
于 2013-10-02T23:40:13.013 回答
1

尝试在每个 Controller 类的 loadView 中添加这段代码..

- (void)loadView {
    [super loadView];
    if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) {
        self.edgesForExtendedLayout = UIRectEdgeNone;
        self.extendedLayoutIncludesOpaqueBars = YES;
    }

    // Rest of your code...
}

此代码修复了 iOS-7 上的问题。if 条件确保它在 iOS-6 及更低版本中被忽略。

于 2013-10-03T00:30:36.047 回答
0

将此代码放在您的 ViewController 中:

-(BOOL)prefersStatusBarHidden
{
    return YES;
}
于 2013-10-03T04:17:59.477 回答