2017-05-19 58 views
-1

所以我有一個導航控制器內部的主視圖頂部的子視圖(側面菜單)。是否可以隱藏滑出菜單上的狀態欄,但繼續在主視圖上顯示它?如何掩蓋子視圖的狀態欄?

注:一種觀點認爲目前對另一

So I have the subview (side menu) pulled out on top of the main view inside of a Navigation Controller. Is it possible to hide the status bar on the slide out menu but continue to show it on the main view?

+1

這是不可能隱藏只有一半的狀態欄,我會建議啓動狀態欄下面的菜單或隱藏狀態欄,但第一個在我看來更好 –

+0

好的。那麼這是如何完成的? http://imgur.com/a/aXrRu @ZachFuller – Rich

+0

我個人發現截屏不好的用戶界面,但它可能是(1)容器視圖與(2)對每個視圖的'prefersStatusBarHidden'覆蓋的組合,以及可能(3)視圖層次結構甚至(4)演示視圖控制器。再說一遍,爲什麼要放置一個組合 - 就像那個截圖一樣 - 哪裏有一半的時間被阻塞?我給@ZachFuller提供了他評論中的「有用的」勾號,因爲他有正確的想法。通過簡單地將菜單放在狀態欄下方,讓未來的開發人員和用戶都可以簡單地使用它。幾乎每個iOS用戶都期望它。 – dfd

回答

0
override var prefersStatusBarHidden: Bool { 
return true 

}

試試這頂... Can't Hide Status Bar—Swift 3,

+0

已經嘗試過。它也隱藏了主視圖上的狀態欄。 – Rich

0

可以隱藏狀態欄的條件..您需要在狀態欄上添加另一個窗口對象。

let stautsBarWindow = UIWindow(frame: UIScreen.main.bounds) 
    stautsBarWindow.backgroundColor = UIColor.clear 
    stautsBarWindow.rootViewController = yourSideMenuViewController 
    stautsBarWindow.windowLevel = UIWindowLevelStatusBar 
    stautsBarWindow.isHidden = false 

這將在狀態欄的頂部創建另一個窗口對象。所以只需將它左側滑動,以便只能看到其中的一半/將其寬度縮小到屏幕的一半,以便您只能看到一半的可見區域並在該區域內顯示完整的viewController。你認爲哪種邏輯是正確的就是使用它。

+0

添加了代碼,並沒有改變任何東西。任何其他想法? – Rich