如何将iPhone X的全屏图像添加到xcassets(不是启动图像)?

时间:2018-02-13 15:35:57

标签: ios xcode iphone-x xcasset

我的横向应用程序中有一个背景图像,覆盖整个屏幕。我像往常一样使用@ 1x,@ 2x和@ 3x将它添加到xcassets中。

在除iPhone X之外的所有设备上,图像都能正确显示。但是,由于iPhone X的纵横比与其他iPhone不同,因此它会在侧面裁剪。如果我选择Aspect Fill,它会被拉伸并看起来很差。

我已经在iPhone X的正确纵横比下创建了一个额外的背景图像,但是如何将其添加到xcassets? @ 1x,@ 2x和@ 3x只有选项。我错过了什么吗?

(我必须强调这不是一个启动图像 - 它是图像视图中的图像,作为我应用程序中所有屏幕的背景)。

修改

对于任何正在努力解决这个问题的人来说,感谢4kman的帮助,我就是这样做的。

override func viewDidLayoutSubviews() {
    // Work out aspect ratio to show correct background image
    let imageWidth = background.bounds.width
    let imageHeight = background.bounds.height
    let aspectRatio = imageWidth / imageHeight

    if aspectRatio >= 2.0 {  // iPhone X ratio is 2.16, other iPhones are 1.77
        background.image = UIImage(named: "background-X")
    } else {
        background.image = UIImage(named: "background")
    }
}

1 个答案:

答案 0 :(得分:2)

在一个图片资源中无法拥有不同宽高比的图片。如果要专门定位iPhone X,则应添加其他资产。给它一个后缀以区别于原始图像(例如“-x”)。