2013-10-02 54 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; 
} 
相關問題