我正试图在iPad 2上加载我的应用程序(因为它在iPad 3上运行得很好)。 我缩小了图像,现在有2组图像,如: image.png和image@2x.png。 当我尝试加载图像时:
someImageView.image = [UIImage imageNamed:@"image.png"];
或者通过IB,它没有给我我预期的结果(比如选择正确的图像版本,具体取决于所显示的here的iPad显示)并且只显示image.png,无论哪个iPad运行应用程序,但是当我尝试通过以下方式导入图像时:
NSString* imagePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"];
UIImage* someImage = [[UIImage alloc] initWithContentsOfFile:imagePath];
someImageView.image = someImage;
这很好用,当我在iPad 3上运行应用程序时,它使用@ 2x png文件。 虽然这有效,但我不确定是否必须分配和发布我使用的每个图像,因为我通过IB使用了一些图像。 这是正常行为吗?
我使用了SDK 4,4.2和5,但没有改变,我也使用Xcode 4.2,因为我不想切换到Lion。
someImageView.image = [UIImage imageNamed:@"image.png"];
,只选择IB插槽中的图像“image.png”。没用。image
。没工作。无论如何,它都会拾取image.png。someImageView.image = [UIImage imageNamed:@"image@2x.png"];
它会在任何设备中显示2x图像。image@2x~ipad.png
和image~ipad.png
。没用。非常感谢任何帮助!
*更新:UIImage
在[UIScreen mainScreen].scale
返回时切换到@ 2x 2.当我检查时,它返回1,这就是@ 2x未激活的原因。那么有谁知道4.2不识别iPad3视网膜显示器?我找到了类似的here。
*更新2:我设法通过将SDK 5.1合并到Xcode并将其用作基本SDK来实现这一目的。当我在SDKs文件夹中同时拥有SDK 5和5.1时,它不起作用,当我删除SDK 5版本时,它作为魅力。
答案 0 :(得分:0)
您是否尝试在图片中添加~ipad
后缀?所以你的视网膜iPad图像应该重命名并调用如下:
[UIImage imageNamed:@"image@2x~ipad.png"]
希望这会有所帮助。
答案 1 :(得分:0)
默认不起作用,因为Xcode 4.3.1是支持新iPad(视网膜)的第一个版本
如果你想让它继续工作,check this answer