L'ajout d'une sous-vue et la position avec les contraintes par programmation

J'ai ajouté un UIView à l'aide de l'IB à la vue-contrôleur. Appelons ça le redView.

L'ajout d'une sous-vue et la position avec les contraintes par programmation

Puis j'ai épinglé ses quatre côtés à l'aide de l'auto contraintes de mise en forme dans le code et quand je le lance, il ressemble à ceci comme prévu.

L'ajout d'une sous-vue et la position avec les contraintes par programmation

Maintenant, je veux ajouter un UILabel de ce point de vue par programme et placez-le au centre de l'utilisation de l'auto contraintes de mise en forme.

Ci-dessous le code que j'ai jusqu'ici.

import UIKit
class ViewController: UIViewController {
@IBOutlet private var redView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
redView.setTranslatesAutoresizingMaskIntoConstraints(false)
let leadingConstraint = NSLayoutConstraint(item: redView, attribute: .Leading, relatedBy: .Equal, toItem: view, attribute: .Leading, multiplier: 1, constant: 0)
let trailingConstraint = NSLayoutConstraint(item: redView, attribute: .Trailing, relatedBy: .Equal, toItem: view, attribute: .Trailing, multiplier: 1, constant: 0)
let topConstraint = NSLayoutConstraint(item: redView, attribute: .Top, relatedBy: .Equal, toItem: view, attribute: .Top, multiplier: 1, constant: 0)
let bottomConstraint = NSLayoutConstraint(item: redView, attribute: .Bottom, relatedBy: .Equal, toItem: view, attribute: .Bottom, multiplier: 1, constant: 0)
view.addConstraints([leadingConstraint, trailingConstraint, topConstraint, bottomConstraint])
let label = UILabel()
label.text = "Auto Layout Exercise"
redView.addSubview(label)
let xCenterConstraint = NSLayoutConstraint(item: label, attribute: .CenterX, relatedBy: .Equal, toItem: redView, attribute: .CenterX, multiplier: 1, constant: 0)
let yCenterConstraint = NSLayoutConstraint(item: label, attribute: .CenterY, relatedBy: .Equal, toItem: redView, attribute: .CenterY, multiplier: 1, constant: 0)
let leadingConstraint1 = NSLayoutConstraint(item: label, attribute: .Leading, relatedBy: .Equal, toItem: redView, attribute: .Leading, multiplier: 1, constant: 20)
let trailingConstraint1 = NSLayoutConstraint(item: label, attribute: .Trailing, relatedBy: .Equal, toItem: redView, attribute: .Trailing, multiplier: 1, constant: -20)
redView.addConstraints([xCenterConstraint, yCenterConstraint, leadingConstraint1, trailingConstraint1])
}
}

Le problème est que l'étiquette n'apparaît pas sur le redView. Quelqu'un peut-il me dire ce que je suis en manque ici?

Merci.

InformationsquelleAutor Isuru | 2014-11-03