呈现错误的UIImage

时间:2019-06-19 18:54:42

标签: swift xcode uiimage xcasset

我在导航项左栏按钮项上使用了自定义图像资源,但是呈现了错误的图像。在我的Assets.xcassets文件夹中,此图像已加载:

expected back button image

在用于视图控制器的viewWillAppear方法中,我执行以下代码:

self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "back"), style: .plain, target: self, action: #selector(self.backButtonSelected))

但是当我运行此版本时,我得到的是这个图像:

actual back button image

我到处都看过,在代码中的任何地方都找不到该图像,这甚至都不是Apple的默认背面图像。

仅需注意:情况并非如此,将呈现正确的图像。不能完全确定这个问题是从多久以前开始的,但是肯定已经在Xcode 10.2发行版中出现了

2 个答案:

答案 0 :(得分:0)

尝试定义按钮并在UIBarButtonItem初始化程序中使用它,它应该是:

let btn = UIButton(type: .custom)
btn.setImage(UIImage(named: "back"), for: .normal)
btn.addTarget(self, action: #selector(self.backButtonSelected), for: .touchUpInside)
let item = UIBarButtonItem(customView: btn)

self.navigationItem.leftBarButtonItem = item

但是您的问题可能是您的图像名称。在尝试我的解决方案之前,请尝试将图像名称更改为arrow_back或您喜欢的任何名称。

答案 1 :(得分:0)

  

在我的代码中的任何地方都找不到该图片

它不会出现在您的代码中。它在您的资产目录或应用程序捆绑包中(通过Project Navigator查找名为 back.png 的内容)。如果在应用程序捆绑包中,它将覆盖资产目录。

无论如何,它肯定不会出现在任何地方。相信我,您的项目中的某个位置已经有了这张图片。