Установить вид фона из вида изображения - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь сопоставить любое изображение, помещенное в UIImageView, с фоновым изображением представления контроллера представления. Поэтому, когда пользователь вызывает func call в приведенном ниже примере, любое изображение в представлении изображения choosenBack отображается в качестве фона контроллера представления. Если изображение не помещается в представление изображения, фоновое изображение представления должно быть просто nil.

choosenBack = UIImageView()

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

1 Ответ

0 голосов
/ 09 апреля 2020

Использование свойства 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
}
...