做好了好多天的音視頻功能街氢,今天自己用的時(shí)候偶然發(fā)現(xiàn),橫屏被掛斷后 app的導(dǎo)航欄與狀態(tài)欄UI重疊了珊肃,偶爾還出現(xiàn)未重疊但是 狀態(tài)欄背景顏色變?yōu)榘咨那闆r馅笙,這與app主體顏色相去甚遠(yuǎn),雖然是小問題但是看起來(lái)非常不舒服董习。
問題①:橫屏后導(dǎo)航欄與狀態(tài)欄重疊
經(jīng)過(guò)查資料分析:是因?yàn)橐粢曨l橫屏被掛斷時(shí)(此時(shí)狀態(tài)欄是隱藏的),雖然我有強(qiáng)制變?yōu)樨Q屏單數(shù) app 尚未反應(yīng)過(guò)來(lái) 狀態(tài)欄高度還是0招刹,此時(shí)做一個(gè)判斷?
if navigationBar.top == 0 {
? ? ?navigationBar.top = self.view.safeAreaTop == 0 ? 20 : self.view.safeAreaTop? ? //注意iPhoneX?
}
問題②:狀態(tài)欄背景顏色莫名其妙變成白色 (ps:原先為主題綠色)
剖析原因:是因?yàn)橹匦抡{(diào)用了preferredStatusBarStyle 這個(gè)屬性會(huì)改變背景顏色,設(shè)置完navigationBar.barTintColor 后需要通知狀態(tài)欄更新
在系統(tǒng)調(diào)用完?preferredStatusBarStyle 屬性后 設(shè)置背景顏色并更新狀態(tài)欄
navigationBar.barTintColor = UIColor.green
setNeedsStatusBarAppearanceUpdate()