以下代码在将自定义图像设置为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 - UINavigationBar背景图像-在iOS 11中损坏?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46775647/

10-12 18:11