我的应用程序,应该支持iOS 5.0+我有背景UIImage,应根据设备加载正确的图像。所以我创建了5张具有相应分辨率的图像。
我也设置了Default-568h@2x.png启动图像。然后我在viewDidLoad中检测我的应用程序正在运行的设备并使用
[bkgImageView setImage:[UIImage imageNamed:@"img.png"]];
加载适当的图像。所有的分辨率加载都很好,除了iPhone 4“one,这是img-568h@2x.png。如果我明确加载这个
[bkgImageView setImage:[UIImage imageNamed:@"img-568h@2x.png"]];
比例不正确。那么如何自动或手动加载4“视网膜图像?
答案 0 :(得分:2)
将-568h
添加到文件名的末尾不起作用。唯一受支持的修饰符为@2x
,~ipad
和~iphone
。 -568h
似乎可行的唯一情况是启动图像,其中图像必须专门命名为Default-568h@2x.png
。
您应该使用自动布局(或支柱和弹簧)来相应地调整屏幕。
你的问题是它会自动拉伸已足够大的图像。
解决方案:
如果您为该设备明确加载图像,则应加载“image-568h”,然后自动添加@ 2x。这样,它知道它是一个高分辨率的图像,并不会尝试拉伸它。
此外,您可以设计具有底部额外空间的图像以适应4英寸屏幕,将图像设置为Aspect Fill,并将其剪裁为较小的设备,而不是检测设备。