当前位置: > > > Swift - 修改导航栏的样式(文字颜色,背景颜色,背景图片)

Swift - 修改导航栏的样式(文字颜色,背景颜色,背景图片)

(本文代码已升级至Swift4)

默认情况,导航栏UINavigationController的样式如下,如果想要使用代码修改样式也是比较简单的。


1,修改导航栏背景色

//修改导航栏背景色
self.navigationController?.navigationBar.barTintColor =
    UIColor(red: 55/255, green: 186/255, blue: 89/255, alpha: 1)


2,修改导航栏文字颜色

//修改导航栏文字颜色
self.navigationController?.navigationBar.titleTextAttributes =
    [NSForegroundColorAttributeName: UIColor.white]

3,修改导航栏文字的字体样式和大小 


//修改导航栏文字字体和大小
self.navigationController?.navigationBar.titleTextAttributes =
    [NSFontAttributeName: UIFont.italicSystemFont(ofSize: 28)]

4,修改导航栏按钮颜色

不管是默认按钮,还是自定义的按钮,颜色都会被修改的。
//修改导航栏按钮颜色
self.navigationController?.navigationBar.tintColor = UIColor.white


5,修改导航栏背景图片

如果背景图片不需要延伸到状态栏后面,那么背景图片高度是44点(88像素)。

如果需要把导航栏也包含在背景图片下,那么背景图片高度改为64点(128像素)。

不管何种尺寸,设置代码如下:
self.navigationController?.navigationBar
    .setBackgroundImage(UIImage(named: "bg5"), for: .default)
评论5
  • 5楼
    2018-02-03 10:34
    沸腾

    你好,请问怎么修改导航栏文字的字体?是只能在StoryBoard上修改吗?

    站长回复

    代码中也可以修改的,我在文章中补充了相关内容,你可以看下。

  • 4楼
    2017-10-20 17:21
    赛亚人

    有的控制器没用导航栏,怎么改状态栏背景颜色,比如改成红色

    站长回复

    直接在最顶部添加一个UIView(宽高设置成和状态栏一样),背景设为红色。

  • 3楼
    2017-03-24 17:28
    1

    站长好,请问下能不能写一篇关于MD5加密集成的文章,找了好多,没有感觉比较好的

    站长回复

    MD5加密的文章我原来有写过:Swift - 获取字符串的MD5值

  • 2楼
    2017-03-04 11:28
    小学生

    如果背景图片不需要延伸到状态栏后面,那么背景图片高度是44点(88像素)。如何把状态栏背景色设置成白色?

    站长回复

    把背景图修改下,背景图高度改为64点(128像素),上半部分(20)使用白色背景。

  • 1楼
    2016-11-01 23:51
    Jason

    怎么全局修改导航栏的颜色

    站长回复

    导航栏都是共用同一个的,一改同一个栈内所有页面上的导航栏都会一起变。