J'ai le UIImage comme ceci:

let imageView = UIImageView(image: image!)

imageView.contentMode = .scaleToFill

self.view.addSubview(imageView)

Ce que j'essaie de faire pour que l'image soit pleine largeur de l'écran, j'ai essayé scaleToFill, scaleAspectFit et scaleAspectFill aucun d'eux ne fait quoi que ce soit ... qu'est-ce que je fais de mal?

Voici mon code complet:

getLandGradingImage(image: imageData!) { result in
    let image = UIImage(data: result)

    if image != nil {
        let imageView = UIImageView(image: image!)

        imageView.contentMode = .scaleAspectFit

        //Add Image to view
        self.view.addSubview(imageView)
    } else {
        self.customAlert(title: "Error", message: "Unable to get images")
    }

}
0
user979331 23 mai 2018 à 17:14

3 réponses

Meilleure réponse
let imageView = UIImageView(image: image!)
imageView.contentMode = .scaleAspectFill
imageView.frame = self.view.bounds
imageView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.view.addSubview(imageView)
2
Alexey Kudlay 23 mai 2018 à 14:28

Vous devez faire de votre cadre UIImageView la taille de la zone que vous souhaitez remplir. Vous pouvez le faire en définissant le cadre explicitement ou en utilisant la mise en page automatique (recommandé).

Méthode 1:

let imageView = UIImageView(image: image!)
imageView.frame = self.view.frame;
imageView.contentMode = .scaleAspectFit
//Add Image to view
self.view.addSubview(imageView)

Méthode 2:

let imageView = UIImageView(image: image!)
imageView.contentMode = .scaleAspectFit
//Add Image to view
self.view.addSubview(imageView)
self.view.translatesAutoresizingMaskIntoConstraints = false  

self.view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[subview]-0-|", options: .directionLeadingToTrailing, metrics: nil, views: ["subview": imageView]))
self.view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[subview]-0-|", options: .directionLeadingToTrailing, metrics: nil, views: ["subview": imageView]))
2
morenoadan22 23 mai 2018 à 14:25

Vous souhaitez manipuler le cadre du UIImageView et non du contentMode.

Essaye ça:

let imageView = UIImageView(image: image!)

imageView.frame = self.view.frame
imageView.contentMode = .scaleToFill

self.view.addSubview(imageView)
1
Teetz 23 mai 2018 à 14:28