2013-10-11 67 views
1

我正在爲ios 7工作兼容性修改。我的應用程序視圖正在爲橫向和端口模式旋轉。如何停止狀態條在ios 7中旋轉視圖時重疊

但目前在ios 7狀態欄覆蓋到我view.in所有旋轉。我試着用下面的代碼,但它不適合我。

在我的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的時候,它將狀態欄設置在不同的位置上。 每當我發生錯誤。

請幫助我,我在上面做錯了什麼。

如果可能的話,請爲我提供所有旋轉的示例代碼以停止狀態欄覆蓋。

回答

0

您可以通過使用此代碼

self.navigationController.navigationBar.translucent = NO; 
+0

爲什麼你覺得OP是使用一個UINavigationController阻止重疊的導航欄? –

+0

@adam我不使用導航控制器我只是想計算高度和寬度和X,Y和設置視圖根據IOS 7和它可以在所有旋轉工作。 –