项目中需要将navigationBar背景设置成绿色,状态栏文字设置成白色,效果图如下:
一般我直接在appdelegate中将navigationBar设置成全局,这样无论哪个页面都是一样的风格,代码如下
private func configNavigationBarStyle(){
UINavigationBar.appearance().translucent = false
UINavigationBar.appearance().barTintColor = themeColor
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor(), NSFontAttributeName: UIFont(name: APP_GLOBAL_FONT_BOLD_NAME, size: 18.0)!]
//设置后退按钮文字的颜色
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
//自定义后退按钮
let backButtonImage = UIImage(named: "NavBackItem")?.resizableImageWithCapInsets(UIEdgeInsetsMake(0, 39, 0, 0))
UIBarButtonItem.appearance().setBackButtonBackgroundImage(backButtonImage, forState: UIControlState.Normal, barMetrics: UIBarMetrics.Default)
//不显示后退按钮文字
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffset(horizontal: CGFloat.max, vertical: CGFloat.max), forBarMetrics: UIBarMetrics.Default)
}
//其中需要用到的themeColor和APP_GLOBAL_FONT_BOLD_NAME我定义在了config.swift文件中,
let themeColor = UIColor(hexString:"#32b847")! //主题色
let APP_GLOBAL_FONT_BOLD_NAME = "STHeitiSC-Medium" //主题字体
接下来就是设置状态栏的字体颜色了,不用写一句代码,只需要在plist文件中,添加一个字段就可以,如图: