[iOS] Autolayout en programmation
mardi 31 janvier 2017Dans 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 !