在我的应用程序中,我无法显示iPad Retina图像。我知道我必须使用@2x~ipad.png
扩展名才能让它们正确显示并且我这样做。我的图像是根据每个设备的扩展名进行命名的。但是,在iPad 3上观看时,我的图像看起来很模糊。我知道图像尺寸和PPI都合适,但看起来并不清晰。
我的图片也在我的'Copy Bundle Resources'中。我试图清理我的项目,然后重启Xcode。没有运气。
同样在我的iPad XIB中的Interace Builder中,我将每个图像设置为-72.png图像(如果iPad 3正确,我想图像会自动切换到@ 2x~ipo.png吗?)
有没有办法确认可能通过NSLogs查看它是否正在加载正确的图像?还有什么我应该仔细检查,以确保加载正确的图像。
答案 0 :(得分:8)
[name] -72.png和[name] @ 2x~ipad.png
那不对。
如果这是一款通用应用,那么你有
Foo.png(或Foo~iphone.png)和Foo@2x.png(或Foo@2x~iphone.png)[注意:iphone不是iPhone];
Foo~ipad.png和Foo@2x~ipad.png
这一切都在我的通用应用程序中为我工作。
编辑:您可以在Apple的“资源编程指南”(第46页)中阅读有关命名约定的内容:
捆绑和图像加载例程会自动查找图像 底层设备有一个@ 2x字符串的文件 高分辨率屏幕。如果将@ 2x字符串与其他字符串组合使用 修饰符,@ 2x字符串应该出现在任何设备修饰符之前,但是 在所有其他修饰符之后,例如启动方向或URL方案 改性剂。例如:
MyImage.png - 图像的默认版本 资源。
MyImage@2x.png - 图像的高分辨率版本 具有Retina显示器的设备的资源。
MyImage~iphone.png - 适用于iPhone和iPod touch的图像版本。
MyImage@2x~iphone.png - 适用于iPhone和iPod touch设备的高分辨率图像版本 用Retina显示。
EDIT2:所以我参考了“-72”(和-50)。这些在iOS 3.1.3及更早版本中使用。完整的解释是“iOS应用程序编程指南”,“应用程序图标”部分(链接太脆弱,无法使用)。
答案 1 :(得分:0)
我正在做的是将图片名称设置为:
[name]_ipad.png
,[name]_ipad@2x.png
。 [ipad公司] [name]_ipod.png
,[name]_ipod@2x.png
。 [iPhone] 并且,我在UIImage
,mc_imageNamed:
添加了一个类别,该类别根据当前设备附加_ipad
或_ipod
。当然,我已经根据他们在XIB中的名字设置了图像。
根据我的经验,这种方法可以保证有效。如果有人能解决你的问题会很棒,但这个解决方案也可用。