iOS App 有没有办法动态地更改 NavigationBar 的背景图片?

2021-12-26 15:24:11 +08:00
 reallittoma

我在开发一个主题功能,希望可以实现在用户切换主题后同时更改标题栏的背景图片。

我试过用 UINavigationBar.appearance().setBackgroundImage ,但发现图片只能设置一次,第二次再调用,图片还是第一次调用后的图片。

这是 iOS 的限制吗?还是我哪里没做对?

7220 次点击
所在节点    iDev
6 条回复
Building
2021-12-26 19:13:58 +08:00
如果要比较方便的客制化,建议自己实现 navigation bar ,因为这个小东西,从 iOS 7 开始,每年一个新变化呢。
okakuyang
2021-12-27 16:06:31 +08:00
NavigationController 现在有几种样式呢,大标题样式还会在几种状态上切换,你可以在上面新增一个 view ,控制这个 view 的背景来改变样式。
okakuyang
2021-12-27 16:06:48 +08:00
navigationController?.navigationBar.setBackgroundImage( UIImage(named: "bg"), for: .default )
reallittoma
2021-12-27 16:37:55 +08:00
@okakuyang #2 新增一个 view 的话,能不能覆盖到状态栏?
okakuyang
2021-12-28 08:59:45 +08:00
@reallittoma 可以
BB9z
2021-12-31 20:14:47 +08:00
UIAppearance 应用于新创建的实例,你直接设置现有实例的属性就好了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/824493

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX