ajouter des contraintes par programme rapidement

Je suis en train d'ajouter des contraintes à un facebook sdk bouton de connexion.

J'ai le bouton à l'intérieur d'un défilement de vue et je suis d'essayer d'ajouter un haut contrainte à un label qui est aussi dans le défilement de la vue. Je suis en mesure d'ajouter avec succès à la hauteur de la contrainte sans les erreurs d'exécution réels, mais la contrainte ne semble pas être appliquée au bouton.

@IBOutlet weak var orLbl: UILabel!
@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()
    var loginFBButton = FBSDKLoginButton()
    loginFBButton.readPermissions = ["public_profile", "email"]

    let heightConstraint = NSLayoutConstraint(
        item: loginFBButton,
        attribute: NSLayoutAttribute.Height,
        relatedBy: NSLayoutRelation.Equal,
        toItem: nil,
        attribute: NSLayoutAttribute.NotAnAttribute,
        multiplier: 1,
        constant: 41)
    let topConstraint = NSLayoutConstraint(
        item: loginFBButton,
        attribute: NSLayoutAttribute.TopMargin,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.orLbl,
        attribute: NSLayoutAttribute.BottomMargin,
        multiplier: 1,
        constant: 31)
    let leadingConstraint = NSLayoutConstraint(
        item: loginFBButton,
        attribute: NSLayoutAttribute.Leading,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.registerButton,
        attribute: NSLayoutAttribute.Left,
        multiplier: 1,
        constant: 0)
    let trailingConstraint = NSLayoutConstraint(
        item: loginFBButton,
        attribute: NSLayoutAttribute.Leading,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.registerButton,
        attribute: NSLayoutAttribute.Right,
        multiplier: 1,
        constant: 0)

    self.scrollView.addSubview(loginFBButton)
    //loginFBButton.center = self.scrollView.center

    loginFBButton.addConstraints([heightConstraint, topConstraint])

}

Puis, quand je comprennent l'ajout de la partie supérieure de la contrainte, j'obtiens une erreur à l'exécution:

Lorsqu'il est ajouté à un point de vue, la contrainte éléments doivent être des descendants de ce point de vue (ou de la vue elle-même). Cette plante si la contrainte doit être résolu avant le point de vue de la hiérarchie est assemblé.

Résiliation d'application en raison de uncaught exception 'NSGenericException', la raison: "Impossible d'installer contrainte sur la vue. La contrainte de référence de quelque chose de l'extérieur de la sous-arborescence de la vue? C'est illégal.

L'étiquette et le facebook bouton sont dans ma défilement de la vue? J'ai même imprimé orLbl.superview et loginFBButton.superview et je suis en option uiscrollview pour les deux

source d'informationauteur user2363025