Swift - UINavigationController 栏颜色不会以编程方式更改

Posted

技术标签:

【中文标题】Swift - UINavigationController 栏颜色不会以编程方式更改【英文标题】:Swift - UINavigationController bar color does not change programmatically 【发布时间】:2014-10-30 09:47:41 【问题描述】:

我在更改UINavigationBar 的背景颜色时遇到问题。 到目前为止,这是我尝试过的:

    self.navigationController?.navigationBar.translucent = true
    self.navigationController?.navigationBar.backgroundColor = UIColor.blueColor()

导航栏没有变化。即使将半透明设置为 true 也完全没有效果。 我可以毫无问题地更改色调颜色,但不能更改背景颜色。

但是,如果我更改情节提要中的颜色,它会正常工作!

情节提要中是否有我错误地启用/禁用的选项?有人可以帮我弄这个吗?谢谢。

【问题讨论】:

使用barTintColor属性。 Swift 5 ios 13 简单回答***.com/questions/60856135/… Swift 5 IOS 13 简单回答享受***.com/a/60898211/6881070 【参考方案1】:

您应该设置导航栏的barTintColor 而不是backgroundColor。这应该是您正在寻找的。​​p>

【讨论】:

哇,这么简单。感谢那。现在可以了。我会尽快接受你的回答 设置 translucent = true 仍然无法正常工作。对我有什么建议吗?谢谢 没问题。我不确定为什么半透明不起作用。导航栏后面肯定有东西可以显示吗? 是的,我使用的是 UITableView,当我向下滚动时,内容不在栏后面。 您是使用UITableViewController 还是UIViewController 并添加自己的表格?或许可以查看一些关于 SO 的其他问题,例如:***.com/questions/19299481/…【参考方案2】:
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.navigationBar.backgroundColor = UIColor.blue

这样就解决了。

【讨论】:

以上是关于Swift - UINavigationController 栏颜色不会以编程方式更改的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7 - UITabBarController selectedIndex 崩溃

将第二个 UIToolbar 添加到 UITableViewController

iOS 6 UINavigationController 中的奇怪错误

开发直播app 软件时iOS端广告功能设置

尝试在 iOS 中将 UITabBarController 与 UITableViewController 一起使用时出现异常

UINavigationController poptorootviewcontroller 并选择另一个选项卡进行转换,如推送视图控制器