2012-10-01 72 views
3

可能重复:
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.pngimage~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版本时,它作为魅力工作。

回答

0

它不是由默认的工作,因为Xcode中4.3.1是第一个版本,以支持新的iPad(视网膜)

如果你想要得到它反正工作,check this answer

+0

感谢您抽出时间回复:)我已经完成了这项工作,以使Xcode 4.2与iOS 5一起工作,但这并没有改变任何东西。 'UIScreen'缩放仍然返回1,所以'UIImage imageNamed'不会拿起.. – madmax21

+0

我再次运行整个过程,因为大家都说它会工作我试图删除5.0 SDK并保留只有5.1 SDK。出于某种原因,现在它的工作!感谢推动我更彻底地解决这个问题! – madmax21

+0

欢迎您 - 欢迎使用stackoverflow! – brainray

0

你有没有试过把~ipad后缀加到你的图片上?所以你的视网膜iPad的图像应该重命名,并像这样调用:

[UIImage imageNamed:@"[email protected]~ipad.png"] 

希望这有助于。

+0

叶氏,我忘了提它,我编辑了我的问题,谢谢:) – madmax21