2016-05-23 9 views
1

Ich möchte die Höhe meiner UITextView programmatisch auf den Inhalt entsprechend anpassen. Ich habe die Standardhöhe von UITextView so festgelegt, dass sie den von mir festgelegten Layouteinschränkungen entspricht, aber geändert werden soll, wenn der Benutzer eine Schaltfläche berührt.Reaktivierung NSLayoutConstraint findet Null beim Entpacken optional

@IBOutlet weak var descriptionHeight: NSLayoutConstraint!

Ich habe versucht, layoutIfNeeded() zu verwenden, aber es ist nicht die Größe meiner Textansicht ändern (wie die Größe der Layout-Beschränkungs gehalten wird).

Ich habe versucht, die Einschränkungen vorübergehend zu deaktivieren, wie so:

print("before: \(descriptionTextView.frame)") 
descriptionHeight.active = false 

descriptionTextView.layoutIfNeeded() 
print("after: \(descriptionTextView.frame)") 

descriptionHeight.constant = descriptionTextView.frame.height   
descriptionHeight.active = true 

Aber wenn beim Zugriff auf den Ausgang nach der Deaktivierung es, wirft es eine Ausnahme:

fatal error: unexpectedly found nil while unwrapping an Optional value

Es scheint, dass es Berechnung der Größe aber richtig:

before: (8.0, 8.0, 398.0, 100.0)

after: (8.0, 8.0, 398.0, 954.666666666667)

Warum passiert das? Gibt es eine bessere Möglichkeit, die richtige Größe meines UITextView zu berechnen und einzustellen?

Antwort

1

Machen Sie den Ausgang strong:

@IBOutlet strong var descriptionHeight: NSLayoutConstraint! 
Verwandte Themen