自定义导航栏的背景、标题、返回按钮文字颜色[转]

改变NavigationBar的背景颜色

去自定义NavigationBar的外观我们需要使用 appearance

// 整个bar都是红色的了
 UINavigationBar.appearance().barTintColor = UIColor.redColor()
 //barIem的颜色变成了白色原本默认蓝色
 UINavigationBar.appearance().tintColor = UIColor.whiteColor()
 //半透明
 UINavigationBar.appearance().translucent = true
 //UIbarStyle
 UINavigationBar.appearance().barStyle = UIBarStyle.Default

改变NavigationBar Title的字体

if let barFont = UIFont(name: "AvenirNextCondensed-DemiBold", size: 22.0) {
    UINavigationBar.appearance().titleTextAttributes =
[NSForegroundColorAttributeName:UIColor.whiteColor(), NSFontAttributeName:barFont]
}

改变返回按钮的文字

// 如果你想改变某个控制器的返回按钮样式
 override func viewDidLoad() {
        super.viewDidLoad()
        // 返回按钮没有了文字,你可以去title里设定你自己需要的
        self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain,
          target: nil, action: nil)
}

使用图片作为导航栏标题

self.navigationItem.titleView = UIView("...")

添加多个栏按钮项目

希望添加导航栏的一侧不止一个栏按钮项目,无论是leftBarButtonItems和rightBarButtonItems 您在导航栏左侧/右侧指定自定义栏按钮项目。

      let shareItem = UIBarButtonItem(image: UIImage(contentsOfFile: "iamge"), style: .Plain, target: self, action: "shareIem:")
     let cameraItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Camera, target: self, action: "cameraItem:")
     self.navigationItem.rightBarButtonItems = [shareItem,cameraItem]

最后说一下使用pushViewController切换到下一个视图时,navigation controller按照以下3条顺序更改导航栏的左侧按钮(本段摘自网络):
1、如果B视图有一个自定义的左侧按钮(leftBarButtonItem),则会显示这个自定义按钮;
2、如果B没有自定义按钮,但是A视图的backBarButtonItem属性有自定义项,则显示这个自定义项;
3、如果前2条都没有,则默认显示一个后退按钮,后退按钮的标题是A视图的标题;

    原文作者:Hydrogen
    原文地址: https://segmentfault.com/a/1190000003844495
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞