2016-07-09 20 views
1

Wenn ich eine UIButton-Instanz im Code erzeuge und mithilfe des Snapkit-Frameworks Constraints anwende, funktioniert das wie erwartet. Aber wenn ich den gleichen Code versuchen anwenden Schaltfläche @IBOutlet (definiert in Storyboard), nichts passieren - I-Taste auf der gleichen Position/Größe zu sehen, wie es auf Storyboard war ...SnapKit. Storyboard-Constraints ersetzen

Beispielcode:

let button = UIButton() 
    self.view.addSubview(button) 

oder

@IBOutlet weak var button: UIButton! 

und Constraints sind

button.snp_makeConstraints { make in 
     make.width.equalTo(150) 
     make.height.equalTo(50) 
     make.centerX.equalTo(self.view.snp_centerX) 
     make.centerY.equalTo(self.view.snp_centerY).offset(-40) 
    } 

ich versucht habeanrufenvor snp_makeConstraints() Methode ohne Erfolg.

Antwort

2

SnapKit nur eigene constraints.For Storyboard Einschränkungen beseitigt Sie Ansicht von Superview entfernen müssen oder diese Schnipsel verwenden, um alle Einschränkungen Standard zu löschen

view.removeConstraints(view.constraints) 
+0

Dank, es funktioniert. Kleine klärende Fragen - ist es in Ordnung, dies in viewDidLoad zu nennen? – Set

+0

Arbeiten in ViewDidLoad sollte kein Problem sein, aber wenn Sie irgendein Problem auftreten, können Sie stattdessen ViewDidLayoutSubviews verwenden. –