目前我们正在使用@ 1x,@ 2x和@ 3x的图像资源,它将支持所有设备。但是当我们为iPhone X使用相同的图像资源时,@ 3x图像在iPhone X中看起来很紧张。 所以,请让我知道如何使用相同的图像资产支持iPhone X设备,或者是否有任何解决方案可以解决此问题。
答案 0 :(得分:2)
另一种方法是选择Aspect Fill
。然后在属性检查器中向下选择Clip to Bounds
。该图像将填充您的UIIMageView,但基于宽高比将剪切它以“移除”不适合视图的那部分图像。
避免所有这一切的唯一方法是使图像的宽高比(宽高比)与UIImageView的宽高比相匹配。
答案 1 :(得分:0)
如果您使用scaleToFill,图片将只会延伸。尝试更改UIImageView的内容模式或用于显示图像的任何内容。
答案 2 :(得分:0)
这是定义不同屏幕尺寸(iPhone XS Max,iPhone XS,iPhone Xr)的图像的非正式技巧。
我发现了一个把戏。在我的应用程序中,我们为所有iPhone设备提供了启动屏幕(请参见屏幕截图)。
在Launch screen
之后出现的下一个屏幕是Login
。它应该具有与Launch screen
相同的图像。
不幸的是,Xcode
开箱即用地在image set
中创建了以下Assets
(iPhone 1x,2x,3,iPad 1x,2x-如图)。
在从Launch Screen
到Login screen
的过渡过程中,我看到了伪像,因为图像在 iPhone X,Xs Max,iPhone Xr
要解决此问题,我将Contents.json
文件从LaunchImage.launchimage
文件夹复制到了 Finder 中的BackgroundImage.imageset
文件夹中(请参见下图的步骤)
现在在Xcode
中,我看到以下模板。我可以为以下设备定义背景图像:Retina HD 4.7“(iPhone 6,iPhone 7,iPhone 8),Retina HD 5.5”(iPhone 6 Plus,iPhone 7 Plus,iPhone 8 Plus),iPhone Xr,iPhone X / iPhone Xs ,iPhone Xs Max