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?