Avatar ·

Comment ajouter programmatiquement des contraintes Auto Layout en Swift ?

Bonjour à tous ! Je suis débutant en développement iOS et j'essaie de comprendre la mise en page des écrans de manière programmatique, sans utiliser Storyboard. J'ai lu que pour l'adaptabilité, il faut utiliser Auto Layout, mais je n'arrive pas à comprendre comment ajouter correctement des constraints (contraintes) via le code.

Voici un exemple simple : je veux placer une vue bleue (UIView) au centre de l'écran, avec des marges de 20 pixels des bords gauche et droit, et une hauteur de 200 points. Je crée la vue et je l'ajoute à l'écran, mais elle ne s'affiche pas ou s'affiche incorrectement.

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let myView = UIView()
        myView.backgroundColor = .blue
        myView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(myView)
        
        NSLayoutConstraint.activate([
            myView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
            myView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20),
            myView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
            myView.heightAnchor.constraint(equalToConstant: 200)
        ])
    }
}

Ce code devrait fonctionner correctement. Assurez-vous d'avoir défini translatesAutoresizingMaskIntoConstraints = false sur votre vue personnalisée, sinon les contraintes automatiques entreront en conflit avec vos contraintes manuelles.