我的应用程序中的图像标题如此:
图像〜iPhone.png image@2x~iPhone.png
在界面构建器中,我将image.png加载到我的UIImageView
中。我还使用imageWithContentsOfFile以编程方式将一些图像加载到不同的视图中。当我在模拟器中运行时,图像都加载正常,但是当我在设备上运行时,我没有得到任何图像。如果我在界面构建器中使用图像的全名它可以工作,但我希望iOS区分高分辨率和低分辨率。我尝试了很多不同的东西,但无法解决这个问题。我在调试器中也看到了这个错误:
无法加载标识为“com.mycompany.myproject”的包中nib引用的“image.png”图像
Xcode 4 部署目标4.1 基础SDK 4.3
感谢您的帮助。
答案 0 :(得分:1)
好的......经过多次实验后我才开始工作。
我有两张名为:
的图片我试图使用IB或imageWithContentsOfFile使用
加载它们这在模拟器中工作正常但在我的设备上却没有。我只有一个空白的白色屏幕,图像应该是。
我终于将高分辨率图像重命名为:
在引用我的图像时,在设备修改器(~iPhone)之后移动'@ 2x'修饰符允许它以我理解它应该从阅读Apple的文档的方式工作。我的印象是,在引用图像时你不需要包含设备修改器,但我不得不这样做。
总结一下,我现在正在使用 - image~iPhone.png 在IB中引用我的图像并以编程方式查找某些图像。我现在让iOS认识到我在视网膜屏幕上并相应地加载@ 2x图像。所以@ 2x修饰符必须在最后,@ iPhone修饰符必须包含在'.png'的名称中。
这对我有用。希望它可以帮助别人。请注意,我只是为iOS4.1及更高版本构建我的应用程序,因此如果您支持以前的版本,可能会出现一些问题。
答案 1 :(得分:0)
iOS不会自动为此类设备选择正确的图像。您将不得不编写代码来检查它是哪个设备,并按全名设置图像。
e.g。 if ([[UIScreen mainScreen] scale] == 2) // set hi res image
或者,您可以在两者中使用相同的图像,并将内容模式设置为缩放以填充。看起来会一样。
编辑:尝试编写~iphone
(小写),或者根本不在文件名上写~iPhone
。如果您的应用不是通用的,那么写~iphone
后缀是完全没有意义的。
答案 2 :(得分:0)
iOS文件系统区分大小写,设备修饰符应为小写,应为
image~iphone.png
image@2x~iphone.png
@ 2x位于设备修改器之前。