[iOS] Autolayout en programmation

mardi 31 janvier 2017

Dans cet article nous allons voir comment utiliser Autolayout en programmation et aussi quelques conseils avec Xcode.

Pour ma part, j’utilise le pod SDC Autolayout disponible ici

Voici un exemple de positionnement en X et Y avec sdc_autolayout

Si je devrais le faire via UI dans Xcode j’aurais ceci:

FirstItem: View.center.X EQUAL Superview.Leading => centerX Alignement Constraint
FirstItem: View.center.Y EQUAL Superview.Top => centerY Alignement Constraint

Maintenant via programmation, j’obtiens ceci:

    private func positionningView(positionX: CGFloat, positionY: CGFloat, width: CGFloat, height: CGFloat, view: UIView, containerView: UIView) {
        containerView.addSubview(view)
        view.translatesAutoresizingMaskIntoConstraints = false
        view.sdc_pinWidth(width)
        view.sdc_pinHeight(height)
        let constraintX = NSLayoutConstraint(item: view, attribute: .CenterX, relatedBy: .Equal, toItem: containerView, attribute: .Leading, multiplier: 1.0, constant: positionX)
        let constraintY = NSLayoutConstraint(item: view, attribute: .CenterY, relatedBy: .Equal, toItem: containerView, attribute: .Top, multiplier: 1.0, constant: positionY)
        containerView.addConstraints([constraintX,constraintY])
    }

Il est important de toujours faire translatesAutoresizingMaskIntoConstraints et que le addsubview de la vue se fait avant les contraintes !

Tags: AutoLayout , IOS , Swift