iOS 自定义导航栏(UINavigationBar)和状态栏(
2016-05-28 本文已影响898人
devZhang
我们在实际项目操作中可能会遇到这样的需求:
- 导航栏背景颜色是一张黑色图片(或者直接设为黑色)
- 导航栏颜色为白色
- 状态栏颜色为亮白色
怎么快速有效的解决呢? 这就是我今天要说的内容。。。
首先看第一个问题
- 导航栏背景颜色是一张黑色图片
如果直接给导航栏对象设置背景颜色是不行的,需要在 AppDelegate.h
中调用[UINavigationBar appearance] setBarTintColor
方法来设置,可以直接设置颜色,当然,也可以这样
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"nav_bar_background"]]];
设置成一张颜色图片。我这里也是黑色的背景图片。效果就是这样的
第二个问题
- 导航栏字体颜色设置为白色
类似于上面的方法,需要个导航栏设置TitleTextAttributes
属性,完整代码是这样
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName, nil ]];
这里需要注意,dictionaryWithObjectsAndKeys:
后面跟的是一个字典,在写完颜色属性后,需要跟上一个NSForegroundColorAttributeName
,也就是字典里键值对的意思。
此时的效果是这样的
关于导航栏,这样设置基本就OK了,接下来就是目前看着不太和谐的 状态栏 。 字体设置成亮白色,效果就会好很多了。网上也有很多方法介绍,我算是尝试总结了一下把。
第一步:在应用程序配置里这个地方选择light
,
第二步:在工程plist文件里新增一个key,View controller-based status bar appearance
,后面选择NO
.
第三步:Status bar style
这里选择 UIStatusBarStyleLightContent
到这里,基本设置完毕,运行效果是这样的
当然,能力有限,我也只是简单列举了一种设置方法,以后自己感觉能有其他更好的方法替代的时候,再来添加吧。