UINavigationBar 背景图像 - 在 iOS 11 中损坏?

标签 uinavigationbar background-image ios11 xcode9

以下代码有效 完全没问题将自定义图像设置为 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/

相关文章:

html - 使用带有背景图片的替代文本?

iOS 11 文件提供者 NSFileProviderRootContainerItemIdentifier

objective-c - 在 Objective-C 中使用 CACornerMask

ios - NavigationBar 没有完全隐藏

swift3 - 自动布局问题 Swift 3.0

css - 如果 block 的样式为 "skew",如何更改旋转背景图像

css - 设置背景图像的位置以缩放

swift - 将文件拖放到 swift 应用程序中

ios - 为iOS6/iO7打包UINavigationBar图片资源

iphone - 如何在 UINavigationBar 下面添加 View