我将此iPhone应用程序定位到iOS 7。
我在.xcassets
上创建了一个名为mainImage
的条目,该条目是针对iPhone的设备。所以xcode给我提供了4个插槽,我必须填充图像。包含以下图片:1x
,2x
,Retina 4 2x
和3x
。
我按顺序为每个插槽填充了以下图像:
1x
= 320 x 480像素图片2x
= 750 x 1334像素图片Retina 4 2x
= 640 x 960像素图片3x
= 1242 x 2208像素图片然后我在故事板上有一个viewController,它是用iPhone 6大小调整的,而imageView调整为只加载“mainImage”。
显示的图像是iPhone 4 2x
拉伸的,而不是正确的图像。它应该显示750x1334图像。
如果使用“mainImage”调整imageView,是不是应该为viewController大小加载正确的图像?
我在iPhone 6上运行它,确实显示的图像是拉伸的iPhone 4图像。
无论如何要解决这个问题?
答案 0 :(得分:1)
它不起作用。您可以为不同的屏幕密度分别设置图像,而不是针对不同的屏幕尺寸。您必须为每个屏幕大小添加单独的条目,并自己选择图像。启动图像是唯一可以自动使用不同屏幕尺寸的资产。
How to specify size for iPhone 6/7 customised edge-to-edge image?
答案 1 :(得分:0)
对每个iDevice遵循此指南: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1
答案 2 :(得分:0)
事实上,xcassets还有一个限制/错误,超出了将其本地化为不同语言的不可能性,即能够加载不同的图像或更好地正确到iPhone 6.苹果没有意识到xcassets的方式如果您关心使用全屏图像,现在工作将无法加载正确的图像。
解决方法是不使用xcassets,创建所需的图像,以及根据屏幕尺寸/需要调用正确图像的类。