前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【iOS开发】全局设定 UINavigationBar 的 UI

【iOS开发】全局设定 UINavigationBar 的 UI

作者头像
KyXu
发布2019-04-11 15:47:51
7580
发布2019-04-11 15:47:51
举报
文章被收录于专栏:KyXuKyXu

App Screen Shot.png

如图,是个很简明的 UITabBarController 分出3个 UINavigationController,每个 UINavigationController 再跟一个 UITableViewController 的结构。 TabBar 和 NavigationBar 都是以浅海蓝色为背景,文字和按钮为白色的设计。 因为 TabBar 只有一个,直接在 UITabBarController 的代码里写下面这段就可以 (globalBarTintColor是我自定义的浅海蓝色,后面还会出现)

代码语言:javascript
复制
    self.tabBar.tintColor = UIColor.whiteColor()
    self.tabBar.barTintColor = globalBarTintColor

然而 NavigationBar 有三个,甚至还会更多,一个个分别去设定颜色显然耦合性不够低,改起来也很麻烦。 下面给出一种全局统一设定的方法,写在 AppDelegate 文件的 didFinishLaunchingWithOptions 方法里:

代码语言:javascript
复制
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
    // NavigationBar 颜色,全局设定
    UINavigationBar.appearance().tintColor = UIColor.whiteColor()
    UINavigationBar.appearance().titleTextAttributes =
        [NSForegroundColorAttributeName:UIColor.whiteColor()]
    UINavigationBar.appearance().barTintColor = globalBarTintColor
    
    return true
}

App Screen Shot2.png

这样做的另外一个好处是,可以直接改掉上图圈出来的 NavigationBar 自带按钮的颜色,如果你直接尝试在某个 ViewController 里写

代码语言:javascript
复制
    self.navigationController!.navigationBar.tintColor = UIColor.whiteColor()

这个按钮的颜色貌似是改不掉的(据我刚刚尝试,是这样的)。

最后: 可以看出,上面的写法,直接是在设定 UINavigationBar 这个类的属性,所以依此类推,其他各种UI效果应该都可以这样全局设定。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015.11.14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档