因此,從 iOS 15 開始,它更新了導航欄的外觀。如果它后面沒有內容(例如,我們沒有向上滾動),它將是透明的。現在這也會影響狀態欄。
當我隱藏導航欄時,狀態欄保持透明。如果我這樣做(應用程式委托):
if #available(iOS 15.0, *) {
let navigationBarAppearance = UINavigationBarAppearance()
navigationBarAppearance.configureWithOpaqueBackground()
navigationBarAppearance.backgroundColor = .systemPurple
UINavigationBar.appearance().standardAppearance = navigationBarAppearance
UINavigationBar.appearance().compactAppearance = navigationBarAppearance
UINavigationBar.appearance().scrollEdgeAppearance = navigationBarAppearance
}
這僅在我的導航欄未隱藏時才有效。否則,如果我在視圖控制器中執行以下操作:
navigationController.isNavigationBarHidden = true
我的狀態欄保持透明。
這不是什么大不了的。我將只使用安全區域,并設定視圖控制器視圖的背景顏色,它看起來就像狀態欄實際上有顏色一樣。但它仍然是透明的。即使我做了
navigationBarAppearance.configureWithOpaqueBackground()
我是否遺漏了什么,當導航控制器隱藏(不可見)時,它不可能使狀態欄不透明(和彩色)iOS >= 15?
uj5u.com熱心網友回復:
當導航控制器在 iOS >= 15 上隱藏(不可見)時,它不可能使狀態欄不透明(和彩色)?
這與 iOS 15 無關。iOS 15 中沒有什么新內容會影響狀態欄。狀態欄已經透明 6 或 7 年了。(我沒有時間弄清楚這種變化是什么時候發生的;關鍵是,這是古老的歷史。)沒有不透明和/或彩色狀態欄這樣的東西,而且一直沒有。導航欄透明度/不透明度不會以任何方式影響狀態欄透明度。如果狀態欄后面顯示導航欄,沒問題;你似乎喜歡那樣。如果您不喜歡導航欄隱藏或透明時狀態欄后面的顏色,請更改狀態欄后面可見的顏色。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/436432.html
