我的横向应用程序中有一个背景图像,覆盖整个屏幕。我像往常一样使用@ 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")
}
}
答案 0 :(得分:2)
您在一个图片资源中无法拥有不同宽高比的图片。如果要专门定位iPhone X,则应添加其他资产。给它一个后缀以区别于原始图像(例如“-x”)。