NavigationBar的几种样式 + 背景图片设置

1.获取导航条
UINavigationBar *navBar =self.navigationController.navigationBar;

2.设置导航条样式(使用系统自带样式)
[navBar setBarStyle:UIBarStyleDefault];

分别有如下几种样式:
typedef NS_ENUM(NSInteger, UIBarStyle) {
UIBarStyleDefault =0,
UIBarStyleBlack = 1,
UIBarStyleBlackOpaque = 1,// Deprecated. UseUIBarStyleBlack
UIBarStyleBlackTranslucent = 2, //Deprecated. Use UIBarStyleBlack and set the translucent property toYES
};

从字面我们就能了解这4种样式的大概意思:
分别为:
UIBarStyleDefault:默认样式

E3D0764D-4E79-4D43-8AD3-868332CE1640.png

UIBarStyleBlack:黑色

FFBC2B80-075C-40EA-BD04-449BDAF0D032.png

UIBarStyleBlackOpaque:黑色不透明

UIBarStyleBlackTranslucent:黑色透明

A5EFC09F-782E-4BB3-B2FB-C226A9A05D53.png

注意:
我们发现,在后面两个标记为Deprecated,我们知道使用后面两种将不被提倡。
从枚举中,我们也可以看出:UIBarStyleBlack=1和UIBarStyleBlackOpaque=1表示为一样的。
后来,发现增加了一个方法:[navBarsetTranslucent:YES];用来指示是否透明。

所以,我们使用UIBarStyleDefault和UIBarStyleBlack来定义UINavigationBar样式,并且用setTranslucent:方法来设置透明与否。

3.自定义导航条颜色
如果,仅仅使用这4种(2种样式是否透明),难免太逊了,必须能自定义UINavigationBar*样式啊。

if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){
     //UIBarMetricsLandscapePhone
    [navBarsetBackgroundImage:[UIImageimageNamed:@"图片名称"] forBarMetrics:UIBarMetricsDefault];
  }

**setBackgroundImage方法的第二个参数,需要解释一下:**

UIBarMetricsDefault:用竖着(拿手机)时**UINavigationBar**的标准的尺寸来显示**UINavigationBar**
UIBarMetricsLandscapePhone:用横着时**UINavigationBar**的标准尺寸来显示**UINavigationBar**

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,194评论 4 61
  • 多视图应用程序中,我们常常使用到自定义UINavigationBar来完成导航条的设置。 1.获取导航条 UINa...
    方舍阅读 1,436评论 0 0
  • 想象自己是个勇士已经不行了 这个时候把自己想象成一个会打电话的机器会好受点
    青sir阅读 1,534评论 0 0
  • 2016年01月17号 不久前,在同事微博微博的热聊里,我扒出了注册了很久却一直没怎么关注的微博,刷新了几天觉得每...
    舒咫文阅读 1,430评论 0 0
  • 终于,马上结束时间的分裂,这段时间一边特种兵培训,一边学习准备考试,后天考试,希望通过!以后时间就会充裕很多了。不...
    ef19cd0c10f7阅读 1,215评论 0 0