UIImage "imageNamed:" 适用于 iOS 8,但不适用于 7?
UIImage "imageNamed:" works on iOS 8, but not 7?
SO 上 several answers 已经有大约 "imageNamed:" 不工作,但 none 包括了我的特殊皱纹:
我在 iOS 7 上从 "imageNamed:" 得到 nil
,但同样的构建在 iOS 8.
显然,所有内容都已正确连接,因为它确实适用于 iOS 8,但它始终如一地 returns nil
returns nil
iOS 7. 值得注意的是,我在开始时将资产移到了 AssetCatalog 中。 iOS 7 上的资产目录是否存在某些必须考虑的异常行为?
根据对本网站类似问题的回答,以下是一些详细信息:
- 此问题出现在为用户存档和导出的实际构建中,以及模拟器中。两个版本都显示 iOS 7/8 行为分裂。
- 图像是 PNG,资产目录包含每个图像的 1x、2x 和 3x 版本。
- 我已确认拼写和大小写匹配(通过 iOS 8 进一步确认)。
到目前为止,关于 SO 的大部分答案都是针对会阻止它工作的错误根本。任何人都可以帮助进行仅适用于 iOS 8 的图像调用吗?
您可以尝试以下步骤:
清理您的项目 (Cmd+Shift+K) 并再次 运行。
添加其他图像(不是@2x、@3x)并检查它是否有效。
创建一个新项目并检查 UIImage imagedName 是否可以与 iOS7/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"
...似乎可以解决问题。
SO 上 several answers 已经有大约 "imageNamed:" 不工作,但 none 包括了我的特殊皱纹:
我在 iOS 7 上从 "imageNamed:" 得到 nil
,但同样的构建在 iOS 8.
显然,所有内容都已正确连接,因为它确实适用于 iOS 8,但它始终如一地 returns nil
returns nil
iOS 7. 值得注意的是,我在开始时将资产移到了 AssetCatalog 中。 iOS 7 上的资产目录是否存在某些必须考虑的异常行为?
根据对本网站类似问题的回答,以下是一些详细信息:
- 此问题出现在为用户存档和导出的实际构建中,以及模拟器中。两个版本都显示 iOS 7/8 行为分裂。
- 图像是 PNG,资产目录包含每个图像的 1x、2x 和 3x 版本。
- 我已确认拼写和大小写匹配(通过 iOS 8 进一步确认)。
到目前为止,关于 SO 的大部分答案都是针对会阻止它工作的错误根本。任何人都可以帮助进行仅适用于 iOS 8 的图像调用吗?
您可以尝试以下步骤:
清理您的项目 (Cmd+Shift+K) 并再次 运行。
添加其他图像(不是@2x、@3x)并检查它是否有效。
创建一个新项目并检查 UIImage imagedName 是否可以与 iOS7/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"
...似乎可以解决问题。