[英]UIImage “imageNamed:” works on iOS 8, but not 7?
SO上已经有几个答案关于“imageNamed:”不起作用,但没有一个包含我特别的皱纹:
我在iOS 7上从“imageNamed:”获得了nil
,但同样的版本适用于iOS 8。
显然,所有内容都可以正常连接,因为它可以在iOS 8上运行,但它在iOS 7上的大范围(可能是24个)图像上一直返回nil
。值得注意的是,我在这个开始时将资产移动到AssetCatalog。 iOS 7上的资产目录是否有一些不寻常的行为需要考虑?
以下是一些细节,基于本网站上类似问题的答案:
到目前为止,大多数的SO的答案是,将阻止其在所有工作的bug。 任何人都可以帮助进行仅适用于iOS 8的图像调用吗?
呵呵。 显然,解决方案是如果资产目录中的图像集在其名称中有一个文件后缀,则iOS 7会被绊倒。 我们的资产目录中有每个文件的几个版本,相同的图像但是用途不同,所以我的同事用旧文件名命名它们,如下所示:
"RedBall.png - Small" (includes 25px, 50px, 75px)
"RedBall.png - Large" (includes 150px, 300px, 450px)
"BlueBall.png - Small"
"BlueBall.png - Large"
显然,iOS 8足够聪明,可以识别“RedBall.png - Small”这个名字,而iOS 7不知道当“.png”就在中间时该做什么。
将文件重命名为...
"RedBall - Small"
"RedBall - Large"
"BlueBall - Small"
"BlueBall - Large"
......似乎可以解决问题。
您可以尝试以下步骤:
清理项目(Cmd + Shift + K)并再次运行。
添加其他图像(不是@ 2x,@ 3x)并检查它是否有效。
创建一个新项目并检查UIImage imagedName可以与iOS7 / 8一起使用。
有一些问题,我们不需要尝试找到根本原因,只需跳过它去:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.