我正在尝试创建应填充全屏的背景图像,已经创建了图像视图,并将约束设置为视图边缘,并将内容模式设置为scaleAsppectFill。但是图像不希望占据imageView的整个高度。我不在乎图像是否被裁剪,但我不希望图像失真。有人知道我在做什么错吗?
我在这里尝试过:
private func configurBackgroundImage() {
if let backgroundImage = UIImage(named: "floral") {
backgroundImageView.image = backgroundImage
}
backgroundImageView.contentMode = .scaleAspectFill
backgroundImageView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(backgroundImageView)
backgroundImageView.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 0).isActive = true
backgroundImageView.rightAnchor.constraint(equalTo: view.rightAnchor, constant: 0).isActive = true
backgroundImageView.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
backgroundImageView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true
}
这是结果:
编辑:
[好吧,我知道发生了什么,我使用的图像在边缘是透明的。因此,在代码和我输入的结果上,图像覆盖了整个高度。但是我们看不到它,并且视图层次结构对此没有任何提示。我发现使用Illustrator,看起来像这样:
您可以尝试使用此代码,可以在viewDidLoad函数中执行
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "nightBack2")
backgroundImage.contentMode = UIView.ContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)