1

我的应用程序应该支持 iOS 5.0+ 我有背景 UIImage,它应该根据设备加载正确的图像。因此,我创建了 5 张具有相应分辨率的图像。

  • 图片.png
  • img@2x.png
  • img-568h@2x.png
  • img~ipad.png
  • img@2x~ipad.png

我还设置了 Default-568h@2x.png 初始图像。然后我在 viewDidLoad 中检测我的应用正在运行和使用哪个设备

[bkgImageView setImage:[UIImage imageNamed:@"img.png"]];

加载适当的图像。所有分辨率都加载得很好,除了 iPhone 4" 之一,即 img-568h@2x.png。如果我明确加载这个

[bkgImageView setImage:[UIImage imageNamed:@"img-568h@2x.png"]];

比例不正确。那么如何自动或手动加载 4" 视网膜图像?

4

1 回答 1

2

添加-568h到文件名的末尾不起作用。唯一支持的修饰符是@2x,~ipad~iphone. 唯一-568h可行的情况是启动映像,其中映像必须专门命名为Default-568h@2x.png.

您应该使用自动布局(或支柱和弹簧)来相应地调整您的屏幕。

您的问题是它会自动拉伸已经足够大的图像。

解决方案:

如果您为该设备显式加载图像,则应加载“image-568h”,并让它自动添加@2x。这样,它就知道这是一张高分辨率图像,并且不会尝试拉伸它。

此外,您可以在底部设计具有额外空间以适应 4 英寸屏幕的图像,而不是检测设备,将图像设置为 Aspect Fill,并让它为较小的设备剪辑。

于 2013-03-05T13:24:28.240 回答