我的应用程序应该支持 iOS 5.0+ 我有背景 UIImage,它应该根据设备加载正确的图像。所以我创建了 5 张具有相应分辨率的图像。
- img.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"视网膜图像?
最佳答案
将 -568h
添加到文件名的末尾不起作用。唯一支持的修饰符是 @2x
、~ipad
和 ~iphone
。 -568h
似乎唯一可行的情况是启动图像,其中图像必须专门命名为 Default-568h@2x.png
。
您应该使用自动布局(或 struts 和 springs)来相应地调整您的屏幕。
您的问题是它会自动拉伸(stretch)已经足够大的图像。
解决方法:
如果您明确为该设备加载图像,您应该加载“image-568h”,并让它自动添加 @2x。这样一来,它就知道这是一张高分辨率图像,并且不会尝试拉伸(stretch)它。
此外,您可以设计底部有额外空间以适合 4"屏幕的图像,而不是检测设备,将图像设置为纵横比填充,并让它为较小的设备裁剪。
关于ios - 无法正确加载 iPhone 4"图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15223842/