在不使用 Tint 的情况下更改 NavigationBar 和系统颜色

Posted

技术标签:

【中文标题】在不使用 Tint 的情况下更改 NavigationBar 和系统颜色【英文标题】:Changing NavigationBar and System Colors Without Tint 【发布时间】:2014-11-16 13:31:23 【问题描述】:

我试图在我的应用程序的每个视图控制器上更改导航栏的颜色,但是当我使用以下行时:UINavigationBar.appearance().backgroundColor = UIColorFromHex(0xFF0000)UIColorFromHex 是我自己的自定义函数,它听起来像)在@ 987654325@我得到一个奇怪的渐变,从一个视图到另一个视图:

我想要一个完全不透明的红色背景,或者任何与此相关的颜色,在整个应用程序范围内,使其看起来一致。帮助!谢谢!

【问题讨论】:

【参考方案1】:

导航栏默认是半透明的,需要关闭,然后使用barTintColor改变导航栏的背景:

UINavigationBar.appearance().translucent = false
UINavigationBar.appearance().barTintColor = UIColor.redColor()

设置背景颜色会更改半透明条下方的半毛色 - 你不需要。

【讨论】:

当您这样做时,您会如何处理视图错位?使用半透明条,视图会向下移动,但是当您将其设置为 false 时,视图会向下移动。

以上是关于在不使用 Tint 的情况下更改 NavigationBar 和系统颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在不更改输入内容的情况下更改输入值

如何在不更改浏览器历史记录的情况下更改 url

在不更改 url 的情况下访问脚本

如何在不更改 matplotlib 默认值的情况下使用 seaborn?

React - 在不使用 setState 的情况下更改状态:必须避免吗?

在不重新加载 web 视图的情况下更改 html 文本颜色