无法从 .xcassets 文件加载新图像
Can't load a new image from .xcassets file
我今天无法加载添加到 .xcassets 文件的图像。
let image = UIImage(named: "slider_star")
print(image) // nil
来自完全相同资产文件的其他旧图像加载得很好(在代码中完全相同的位置)。我可以在 .xib 文件中看到图像,如果我将它放在 .xib 文件中的 UIImage 中,它在模拟器中也显示得很好。
我已经尝试清理我的构建文件夹,重新启动 Xcode,使用不同的模拟器,并将其作为图像文字加载(可以 select 从图像列表中加载它,但模拟器崩溃时尝试渲染图像)。我还确保目标成员身份是正确的,并且资产文件在复制包资源中,并且图像文件确实在 Finder 的资产文件中。此外,图像集的所有设置都与其他工作图像集相同。
知道为什么会这样吗?
编辑:我根据评论中的建议尝试了更多内容:
- 从“星号”更改名称 -> “slider_star”
- 检查所有图像的颜色space是否与工作图像的颜色相同
- 检查slider_star末尾没有多余的白色space。
- 也尝试制作另一个新图像集,re-using其中一些已确认的工作图像,但这也返回零。我认为这至少可以排除图像文件本身的任何问题。这几乎就像 xcode 没有看到 .xcassets 文件的更新,但这很奇怪,因为更新显示在 .xib 文件中并且工作正常。
终于明白了。这是一个具有多个目标的相当大的项目,似乎我正在使用的目标中的代码出于某种原因正在查看来自另一个目标的 .xcassets 文件(我检查了另一个 xcasset 文件的目标成员身份,它是 没有包含在我正在使用的目标中,所以我不明白为什么会这样。
我可以通过将我的图像放在另一个 xcasset 文件中(不太喜欢这样)或使用 UIImage(named:in:with:) 指定包来解决这个问题。
如果有人知道为什么会这样,我很乐意解决根本问题(也许这不是问题,我只是不明白它应该如何工作)。在接受它作为答案之前,我会让它静置 24 小时。
我今天无法加载添加到 .xcassets 文件的图像。
let image = UIImage(named: "slider_star")
print(image) // nil
来自完全相同资产文件的其他旧图像加载得很好(在代码中完全相同的位置)。我可以在 .xib 文件中看到图像,如果我将它放在 .xib 文件中的 UIImage 中,它在模拟器中也显示得很好。
我已经尝试清理我的构建文件夹,重新启动 Xcode,使用不同的模拟器,并将其作为图像文字加载(可以 select 从图像列表中加载它,但模拟器崩溃时尝试渲染图像)。我还确保目标成员身份是正确的,并且资产文件在复制包资源中,并且图像文件确实在 Finder 的资产文件中。此外,图像集的所有设置都与其他工作图像集相同。
知道为什么会这样吗?
编辑:我根据评论中的建议尝试了更多内容:
- 从“星号”更改名称 -> “slider_star”
- 检查所有图像的颜色space是否与工作图像的颜色相同
- 检查slider_star末尾没有多余的白色space。
- 也尝试制作另一个新图像集,re-using其中一些已确认的工作图像,但这也返回零。我认为这至少可以排除图像文件本身的任何问题。这几乎就像 xcode 没有看到 .xcassets 文件的更新,但这很奇怪,因为更新显示在 .xib 文件中并且工作正常。
终于明白了。这是一个具有多个目标的相当大的项目,似乎我正在使用的目标中的代码出于某种原因正在查看来自另一个目标的 .xcassets 文件(我检查了另一个 xcasset 文件的目标成员身份,它是 没有包含在我正在使用的目标中,所以我不明白为什么会这样。
我可以通过将我的图像放在另一个 xcasset 文件中(不太喜欢这样)或使用 UIImage(named:in:with:) 指定包来解决这个问题。
如果有人知道为什么会这样,我很乐意解决根本问题(也许这不是问题,我只是不明白它应该如何工作)。在接受它作为答案之前,我会让它静置 24 小时。