Trzymam odniesień do mojego NSLayoutConstraint
Jak mogę aktywować, wcześniej dezaktywować wiązanie?
var flag = true
@IBOutlet weak var myConstraint: NSLayoutConstraint!
potem przez jakiś @IBAction
mogę włączyć/wyłączyć w zależności od mojego flag
zmiennej:
@IBAction func tapped(sender: UIButton) {
flag = !flag
UIView.animateWithDuration(1.0) {
if self.flag {
NSLayoutConstraint.activateConstraints([self. myConstraint])
} else {
NSLayoutConstraint.deactivateConstraints([self. myConstraint])
}
}
}
Ale kiedy po raz kolejny zadzwonić do mojego działania, mam błąd unexpectedly found nil while unwrapping an Optional value
dla myConstrain
.
Więcej o tym nie animuje. Co ja robię źle?
śledzę samouczek z WWDC 2015:
zachować silne odniesienie do obiektu w deklaracji IBOutlet. '@IBOutlet strong var myConstraint: NSLayoutConstraint!' – Gandalf
Komentarz Gandalfa jest poprawny. dezaktywacja ograniczenia musi spowodować, że hierarchia widoku zwolni jego własność. jeśli nie utrzymasz silnego odniesienia, zostanie ono zwolnione. @Gandalf, powinieneś to zrobić, aby OP mógł to zaakceptować. –