可能重复:
iOS 5.1 with Xcode 4.2 and retina in iPad 3视网膜支持imageNamed @ 2X不工作
我努力让自己在iPad 2的我的应用程序负载(因为它在iPad上运行3大)。 我已经缩小了图像,现在有2套图像,如: image.png和[email protected]。 当我尝试加载与图像:
someImageView.image = [UIImage imageNamed:@"image.png"];
或者通过IB,它并没有给我结果我的预期(如选择取决于iPad的显示屏上的图像的正确版本说明here)和只显示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,因为我不想切换到狮子。
- 我已经尝试不使用
someImageView.image = [UIImage imageNamed:@"image.png"];
,只是在IB插槽中选择图像“image.png”。没有工作。 - 我试着在IB插槽中只输入
image
。没有工作。无论如何,它都会提取image.png。 - 我试过使用
someImageView.image = [UIImage imageNamed:@"[email protected]"];
它显示任何设备的2x图像。 - 我尝试使用
[email protected]~ipad.png
和image~ipad.png
。没有工作。 - 所有图像集都被命名为正确,大小是正确的,并且已经全部导入同一组/文件夹中的项目。
- 它不是一个通用的,而是一个iPad应用程序。
- 在此过程中,我已经多次清理了构建。
任何帮助,非常感谢!
*更新:UIImage
当[UIScreen mainScreen].scale
返回时切换到@ 2x。当我检查它时,它返回1,这是@ 2x未激活的原因。那么是否有人知道4.2不承认iPad3视网膜显示器?我发现了类似的东西here。
*更新2:我设法通过将SDK 5.1合并到Xcode中并将其用作基本SDK来实现此目的。当我在SDK文件夹中同时包含SDK 5和5.1时,它不起作用,当我删除SDK 5版本时,它作为魅力工作。
感谢您抽出时间回复:)我已经完成了这项工作,以使Xcode 4.2与iOS 5一起工作,但这并没有改变任何东西。 'UIScreen'缩放仍然返回1,所以'UIImage imageNamed'不会拿起.. – madmax21
我再次运行整个过程,因为大家都说它会工作我试图删除5.0 SDK并保留只有5.1 SDK。出于某种原因,现在它的工作!感谢推动我更彻底地解决这个问题! – madmax21
欢迎您 - 欢迎使用stackoverflow! – brainray