2013-10-02 51 views
0

我将iPhone和xcode升级到iOS7和XCODE 5.之后,我注意到的第一件事是状态栏覆盖了应用程序的视图区域。状态栏与iOS 7中的应用程序视图重叠xcode5

我通过发布在stackoverflow上的各种解决方案阅读,比如将UIViewControllerBasedStatusBarAppearance设置为NO,等等。没有任何东西可以为我工作。我花了将近4天的时间研究它,但无法解决它。

我想知道现在有一个iOS 6的状观,我们必须显示在顶部或完全得到消除的状态栏中的黑色区域或什么是做在iOS 7

的确切方式任何帮助将不胜感激。

+0

的可能重复(HTTP://计算器。 com/questions/18294872/ios-7-status-bar-back-to-ios-6-style) – jaredsinclair

回答

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]; 
+0

嗨Cabellicar123,谢谢你的回应。我尝试在我的视图控制器的viewDidLoad方法中添加代码,如下所示:CGRect frame = [self.view frame]; frame.origin.x = 20; [self.view setFrame:frame];它没有工作:( –

+0

@RanjitAlexander视图向下移动吗?您是否还在状态栏后面添加了第二个视图?我将添加必要的代码给答案。 – carloabelli

+0

@RanjitAlexander您还可以放入x但确保它是我错过了在描述中输入的内容对不起 – carloabelli

1

尝试增加这段代码中的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被忽略,下面..

+0

感谢您的回复,我在我的controller.m文件中添加了一段代码,但状态栏仍然显示在视图区域中。代码已经被执行了,但是代码被添加之前我看不到任何改变:(( –

0

将这个代码在你的ViewController:[?的iOS 7的状态栏返回到iOS 6的风格]

-(BOOL)prefersStatusBarHidden 
{ 
    return YES; 
} 
相关问题