iOS NavigationBar與StatusBar的控制

  1. NavigationBar透明控制

NavigationBar默認是半透明的。isTranslucent屬性true表示半透明,否則不透明。完全透明需要修改背景圖和隱藏底部陰影線。代碼如下

//這個看到的NavigationBar就是透明的
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)//去除navigationBar的背景色
 self.navigationController?.navigationBar.shadowImage = UIImage()//去掉navigationbar 底部的細線
  1. NavigationBar左邊按鈕或者右邊按鈕文字顏色

//這里注意不是修改title的顏色
navigationController?.navigationBar.tintColor = UIColor.yellow
  1. NavigationBar修改背景色

//前提是不修改NavigationBar 的backGroundImage,就可以修改NavigationBar的背景色,并且會修改StatusBar的背景色
navigationController?.navigationBar.barTintColor = UIColor.purple

  1. 修改StatusBar的文字顏色

StatusBar只有兩種顏色,黑色和白色。但是對狀態(tài)的處理也分兩種場景,是否被NavigationBar導航。


//被NavigationBar導航
navigationController?.navigationBar.barStyle = .black
//導航狀態(tài)下,通過這個屬性修改statusBar的顏色,并且需要設置plist中UIViewControllerBasedStatusBarAppearance的值為true。因為NavigationBar導航時,StatusBar跟NavigationBar狀態(tài)一體,所以通過控制NavigaitonBar來控制StatusBar的文字顏色顯示

//不被NavigationBar導航,通過Vc里的一個方法來控制preferredStatusBarStyle

 override var preferredStatusBarStyle: UIStatusBarStyle {
        //NavigationControlle狀態(tài)下,nav不會調(diào)用子vc的preferredStatusBarStyle,需要通過設置navigationBar的barStyle來修改文字顏色
        return .lightContent
    }

  1. 修改NavigationBar title的顏色


navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]//修改navigationBar title 顏色
//同樣title的大小和背景色也可以通過這種方式來控制
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容