簡體   English   中英

導航欄隱藏狀態欄

[英]Navigation Bar hiding status bar

如標題所示,我有一個導航欄,它隱藏了我的狀態欄。 我一直在模擬器上運行我的應用程序,最近開始在iPhone 4s iOS7設備上運行它,並注意到狀態欄處於隱藏或隱藏狀態,您唯一能看到的就是綠色電池壽命。 我認為它被隱藏的原因是,我的一個視圖控制器中有一個搜索欄,當我使用搜索欄時,您可以看到狀態欄,單元格提供者,時間等。

我已經做過的事情以查看是否不是偶然發生的:

Checked the Target-> Deployment Info ->Status Bar Style. It is in Default.

Checked each xib file to see if the status bar is set to none. All of them are at Default.

Searched the keyword "hidden" in all my .m files.

有人有什么建議嗎? 我在這里搜索過,僅看到有關實際上想要隱藏它而不修復它的人的帖子。 如果有人發生過類似的事情,我願意嘗試任何事情。

回答:

I was using a navigation bar image and the sizes were different. 
I was using iOS6 bar size, 32x32, but now I am using 88x64 and 
that fixed it for iOS7. How do I check if phone is iOS6 or iOS7?

狀態欄未隱藏。 在iOS 7上,狀態欄始終可見,並且以與iOS 6及更低版本上不同的方式與您的應用程序重疊。 這是新的“正常”行為。 狀態欄不再具有背景色。 它是透明背景上的黑色文本( UIStatusBarStyleDefault )或透明背景上的淺色文本( UIStatusBarStyleLightContent )。

如果將狀態欄外觀更改為“淺色內容”,您將能夠在深色背景上看到狀態欄。

狀態欄外觀是通過兩個互斥的基本路徑之一控制的:您可以以傳統方式通過編程方式設置它們,或者UIKit將基於UIViewController的一些新屬性為您更新外觀。 默認情況下,后一個選項處於啟用狀態。 檢查應用程序的“基於ViewController的狀態欄外觀”的plist值,以查看使用的是哪個。 如果將此值設置為YES ,則應用中的每個頂級視圖控制器(標准UIKit容器視圖控制器除外)都需要重寫preferredStatusBarStyle ,以返回默認樣式或淺色樣式。 如果將plist值編輯為NO ,則可以使用熟悉的UIApplication方法管理狀態欄的外觀。

我知道它的knida為時已晚,但是這種方法通過狀態欄解決了我的問題:

我所做的是

   self.view.backgroundcolor=[UIcolor WhiteColor];

然后在主視圖內創建一個寬度和高度與self.view相同的子視圖,然后相應地修改其框架,例如:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    if(self.customView.frame.origin.y == 0) {
        CGRect viewBounds = [self.customView bounds];
        viewBounds.origin.y = 20;
        viewBounds.size.height = viewBounds.size.height - 20;
        self.customView.frame = viewBounds;
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM