2016-03-25 10 views
0

Ich versuche, die Visual Format Language in swift arbeiten, aber ich kann es einfach nicht mit einem einfachen Beispiel arbeiten. Ich versuche, das Label irgendwo anders als in der oberen linken Ecke erscheinen zu lassen. Dies ist, wie es jetzt zeigt sich:Swift Visual Format Sprache Funktioniert nicht

Test

Und dies ist mein Code:

override func viewDidLoad() { 
     super.viewDidLoad() 

     let label = UILabel() 
     label.text = "Label 1" 
     label.sizeToFit() 

     self.view.addSubview(label) 
     self.view.translatesAutoresizingMaskIntoConstraints = false 

     let views = Dictionary(dictionaryLiteral: ("label", label)) 

     let horizontalConstraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|-30-[label]-|", 
      options: [], 
      metrics: nil, 
      views: views) 

     self.view.addConstraints(horizontalConstraints) 

     let verticalConstraints = NSLayoutConstraint.constraintsWithVisualFormat("V:|-30-[label]-|", 
      options: [], 
      metrics: nil, 
      views: views) 

     self.view.addConstraints(verticalConstraints) 
} 

Kann jemand sehen, was falsch ist?

+1

Versuchen Sie, 'label.translateAutoresizingMaskIntoConstraints = false 'hinzuzufügen, damit die Option für diese Option deaktiviert ist. Erhalten Sie ein Laufzeitprotokoll, das besagt, dass einige Einschränkungen nicht erfüllbar sind? – tomahh

+0

@tomahh Das hat es geschafft! Fügen Sie es als Antwort hinzu und ich werde es als akzeptiert markieren. Ty! – Fredrik

Antwort

1

Sie benötigen label.translatesAutoresizingMaskIntoConstraints = false

Ohne diese hinzufügen, die die automatische Maske des Labels in Constraints umgewandelt, wenn layoutSubviews durchgeführt wird. Der Boolesche Wert gilt nur für die Ansicht und nicht für ihre Unteransichten.