web-dev-qa-db-fra.com

Comment définir une image de fond dans swift?

J'essaie de définir une image échouée sur mon ViewController en langue rapide.

J'utilise le code suivant:

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

Mais l'application est en train de tomber en panne. Elle montre l'erreur comme

“Erreur fatale: erreur inattendue lors du déroulement d'un fichier facultatif valeur "(à cause du"! ")

7
anusha hrithi

Cette erreur est générée car l'image "bg.png" n'existe pas. Généralement, lorsque vous importez des images dans le dossier Assets.xcassets, l'extension de fichier est supprimée. Alors essayez ce qui suit:

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

Vous remarquerez que l’arrière-plan ne se présentera pas comme prévu, vous devez procéder comme indiqué précédemment ici :

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

Essayez ceci Swift4: 

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

Mise à jour pour Swift3: 

    UIGraphicsBeginImageContext(self.frame.size)

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

    let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!

    UIGraphicsEndImageContext()

    backgroundColor = UIColor(patternImage: image)
0
Fares Ben Hamouda