【问题标题】:iOS 8 SDK: [UIImage imageNamed:] issueiOS 8 SDK:[UIImage imageNamed:] 问题
【发布时间】:2014-09-17 07:54:56
【问题描述】:

在之前的 iOS SDK 中,[UIImage imageNamed:] 可以在不给出文件扩展名的情况下自动确定要加载的图片,例如:

[ivTest setImage:[UIImage imageNamed:@"testImage"]];

它将搜索要加载的适当图像(即testImage.jpgtestImage@2x.jpg)。但是对于 iOS 8,它有时无法识别要加载的正确图像,而只是返回 null

我必须指定扩展名:

[ivTest setImage:[UIImage imageNamed:@"testImage.jpg"]];

但这仅在极少数情况下才会发生。

鉴于我在项目中只有以下图片:

  • testImage.jpg
  • testImage@2x.jpg

没有其他名称相似的图片。我怎样才能防止这种情况?我应该为我所有的imageNamed: 指定扩展名吗?

【问题讨论】:

  • 图片是否在 .xcassets 中?
  • 将图片放在 images.xcassets 中。
  • 是的,我认为您必须为所有 JPEG 指定文件扩展名。上面那段是来自苹果文档的参考。
  • @Raptor 是的,你知道。您必须拥有名为“blah”和“blah@2x”的文件。不过,这取决于你。很容易切换到。它已经存在了两年。它使管理图像更容易。它不需要任何代码更改。它将有助于 iOS8 3x 图像。但如果你不想使用它,我可以理解......不用等......哈哈
  • @Raptor 它还有助于验证您的图标图像和启动图像。

标签: objective-c uiimage ios8


【解决方案1】:

来自here的参考

在 iOS 4 及更高版本上,如果文件是 PNG 格式,则不需要 指定 .PNG 文件扩展名。在 iOS 4 之前,您必须 指定文件扩展名。

所以答案是您必须为所有 JPEG 指定文件扩展名。

关于资产目录,好吧,说实话我对此没有任何想法,让我们稍后再研究。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多