我正在尝试在 iPad 2 上加载我的应用程序(因为它在 iPad 3 上运行良好)。我缩小了图像,现在有两组图像,例如:image.png 和 image@2x.png。当我尝试加载图像时:
someImageView.image = [UIImage imageNamed:@"image.png"];
或者通过 IB,它没有给我预期的结果(比如根据此处所述的 iPad 显示器选择正确版本的图像),并且无论哪个 iPad 运行应用程序都只显示 image.png,尽管当我尝试通过以下方式导入图像:
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
IB 插槽。没用。无论如何,它都会获取 image.png 。 - 我尝试使用
someImageView.image = [UIImage imageNamed:@"image@2x.png"];
它在任何设备中显示 2x 图像。 - 我尝试使用
image@2x~ipad.png
andimage~ipad.png
。没用。 - 所有图像集命名正确,大小正确,并已全部导入到同一组/文件夹中的项目中。
- 它不是一个通用的,而是一个 iPad 应用程序。
- 在此过程中,我已经多次清理了构建。
任何帮助是极大的赞赏!
*更新:UIImage
当返回 2 时切换到 @2x [UIScreen mainScreen].scale
。当我检查它时,它返回 1,这就是 @2x 未激活的原因。那么有谁知道4.2是否不识别iPad3视网膜显示器?我在这里找到了类似的东西。
*更新 2:我设法通过将 SDK 5.1 合并到 Xcode 中并将其用作基础 SDK 来实现此功能。当我在 SDKs 文件夹中同时拥有 SDK 5 和 5.1 时,它不起作用,当我删除 SDK 5 版本时它起到了作用。