Как установить фоновое изображение в swift?

Я пытаюсь установить изображение на моем ViewController на языке swift.

Я использую следующий код :

self.view.backgroundColor = UIColor(patternImage: UIImage(named:”bg.png")!)

но приложение получает сбой.Он показывает ошибку, как

"фатальная ошибка: неожиданно обнаружил нулю при разворачивании необязательное значение"(из-за "!")

3 ответов


эта ошибка возникает из-за изображения "bg.png " не существует. Обычно при импорте изображений в ресурсы.xcassets папка, расширение файла удаляется. Поэтому попробуйте следующее:

self.view.backgroundColor = UIColor(patternImage: UIImage(named:"bg")!)

вы заметите, что фон будет выглядеть не так, как ожидалось, вам нужно сделать следующее, как объяснено здесь:

     UIGraphicsBeginImageContext(self.view.frame.size)
    UIImage(named: "bg")?.draw(in: self.view.bounds)
    let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()
    self.view.backgroundColor = UIColor(patternImage: image)

попробуйте этот Swift4:

let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "bg.png")
backgroundImage.contentMode = UIViewContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)

обновление для swift3 :

    UIGraphicsBeginImageContext(self.frame.size)

    UIImage(named: "bg").draw(in: self.bounds)

    let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!

    UIGraphicsEndImageContext()

    backgroundColor = UIColor(patternImage: image)