从图像视图设置视图背景

Set view background from image view

我正在尝试将放置在 UIImageView 中的任何图像与视图控制器视图的背景图像相匹配。因此,当用户在下面的示例中调用 func call 时,图像视图 choosenBack 中的任何图像都会显示为视图控制器的背景。如果没有图像放置在图像视图中,视图背景图像应该只是 nil.

choosenBack = UIImageView()

func call(){
    self.view.backgroundColor == UIColor(patternImage: UIImage(choosenBack)!)
}

使用 backgroundColor 属性 仅当您确实希望重复图像以填充背景时才有效。在那种情况下,你可以简单地做一些像

func call() {
    if let image = choosenBack.image {
        self.view.backgroundColor = UIColor(patternImage: image)
    } else {
        self.view.backgroundColor = .white // Or w/e your default background is
    }
}

如果您希望背景图片重复,您需要使用专用的背景图片视图。

let background = UIImageView()

override func viewDidLoad() {
    super.viewDidLoad()

    background.contentMode = .scaleAspectFit // Or w/e your desired content mode is

    view.insertSubview(background, at: 0)
    background.translatesAutoresizingMaskIntoConstraints = false
    background.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
    background.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
    background.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
    background.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true

    ...
}

func call() {
    self.background.image = choosenBack.image
}