在iPhone X中伸展的背景图像

时间:2018-01-22 13:29:16

标签: ios xcode iphone-x

目前我们正在使用@ 1x,@ 2x和@ 3x的图像资源,它将支持所有设备。但是当我们为iPhone X使用相同的图像资源时,@ 3x图像在iPhone X中看起来很紧张。 所以,请让我知道如何使用相同的图像资产支持iPhone X设备,或者是否有任何解决方案可以解决此问题。

3 个答案:

答案 0 :(得分:2)

另一种方法是选择Aspect Fill。然后在属性检查器中向下选择Clip to Bounds。该图像将填充您的UIIMageView,但基于宽高比将剪切它以“移除”不适合视图的那部分图像。

避免所有这一切的唯一方法是使图像的宽高比(宽高比)与UIImageView的宽高比相匹配。

答案 1 :(得分:0)

如果您使用scaleToFill,图片将只会延伸。尝试更改UIImageView的内容模式或用于显示图像的任何内容。

答案 2 :(得分:0)

这是定义不同屏幕尺寸(iPhone XS Max,iPhone XS,iPhone Xr)的图像的非正式技巧。

我发现了一个把戏。在我的应用程序中,我们为所有iPhone设备提供了启动屏幕(请参见屏幕截图)。 Lanuch screen example

Launch screen之后出现的下一个屏幕是Login。它应该具有与Launch screen相同的图像。 不幸的是,Xcode开箱即用地在image set中创建了以下Assets(iPhone 1x,2x,3,iPad 1x,2x-如图)。 Xcode generates Image Assets template

在从Launch ScreenLogin screen的过渡过程中,我看到了伪像,因为图像在 iPhone X,Xs Max,iPhone Xr

上拉伸

要解决此问题,我将Contents.json文件从LaunchImage.launchimage文件夹复制到了 Finder 中的BackgroundImage.imageset文件夹中(请参见下图的步骤) copy steps

现在在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 Result