如何在旋转视图时停止ios 7中的状态栏重叠

时间:2013-10-11 13:43:53

标签: iphone ios rotation ios7

我正在为ios 7进行兼容性修改。我的应用程序视图正在为横向和移植模式旋转。

但目前ios 7状态栏正在重叠我的视图。所有轮换。我尝试使用以下代码,但它对我不起作用。

在我的appDelegate文件appdidfinishlaunching中,我按如下方式设置了1个通知:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
        [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidChangeStatusBarOrientation:)
name:UIApplicationDidChangeStatusBarOrientationNotification
                                                   object:nil];
   }

这将是冷方法如下:

- (void)applicationDidChangeStatusBarOrientation:(NSNotification *)notification
{

    int a = [[notification.userInfo objectForKey: UIApplicationStatusBarOrientationUserInfoKey] intValue];
    int w = [[UIScreen mainScreen] bounds].size.width;
    int h = [[UIScreen mainScreen] bounds].size.height;
    switch(a){
        case 4:
            self.window.frame =  CGRectMake(0,20,w,h);
            break;
        case 3:
            self.window.frame =  CGRectMake(-20,0,w-20,h+20);
            break;
        case 2:
            self.window.frame =  CGRectMake(0,-20,w,h);
            break;
        case 1:
            self.window.frame =  CGRectMake(20,0,w-20,h+20);
    }

}

第一次启动我的应用程序状态栏时,我的视图已经过了。 当我旋转我的iPad的时候,它在不同的位置设置状态栏黑色地面。 我每次都出错了。

请帮助我,我在上面做错了什么。

如果可能的话,请提供所有轮换的示例代码以停止状态栏重叠。

1 个答案:

答案 0 :(得分:0)

您可以使用此代码停止导航栏重叠

self.navigationController.navigationBar.translucent = NO;