以下代码有效 完全没问题将自定义图像设置为 UINavigationBar 的背景:
// In AppDelegate.swift:
let image = UIImage(named:"HeaderBanner-new")
UINavigationBar.appearance().setBackgroundImage(image, for: UIBarMetrics.defaultPrompt)
由于切换到 Xcode 9、Swift 4 和 iOS 11,此代码不再有效。我得到的只是 UINavigationBar 中的纯白色背景。
我也尝试将代码移出
AppDelegate.swift
并将其直接放在我的根自定义中 UINavgiationController.swift
文件: let image = UIImage(named:"HeaderBanner-new")
self.navigationBar.setBackgroundImage(image, for: UIBarMetrics.defaultPrompt)
还是不行。
任何想法发生了什么 - 或解决方法/黑客的想法?
最佳答案
NavigationBar.setBackgroundImage 似乎在 iOS 11 中没有按预期工作。
我遇到了同样的问题并通过使用 NavigationBar.barTintColor 修复了它并且它起作用了。
引用 this answer .
关于UINavigationBar 背景图像 - 在 iOS 11 中损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46775647/