2017-12-12 3 views
1

ich eine statische UITableView und einer meiner Zeilen in der es mit automatischen Layout-Abonnenten von oben nach unten eine UITextView müssen von links nach rechts als 0Swift - Statische UITableView wächst mit UITextView

ich die UITableView die content je nach Größe verändert werden soll über den Inhalt des UITextView habe ich allerdings Schwierigkeiten damit umzugehen. Ich habe den ursprünglich verwendeten Code verschrottet, weil er überhaupt nicht funktionierte. Irgendwelche Lösungen?

Antwort

2

Wenn der Inhalt der Textansicht statisch ist. Legen Sie in UITextView SrollingEnabled auf false fest.

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return 1 
} 
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { 
    return 200 
} 

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 

Wenn der Inhalt des Textview ist dynamisch.

Tun Sie dasselbe wie statisch und setzen Sie den Delegaten für UITextView auf self. Dann in UITextview delegieren.

func textViewDidChange(_ textView: UITextView) { 
    tableView.beginUpdates() 
    tableView.endUpdates() 
} 

Dies wird definitiv funktionieren.

+0

Großartig, das funktioniert. Das einzige Problem ist, dass es nicht automatisch aktualisiert wird, während ich tippe, der Inhalt des UITextView ist nicht statisch und ändert sich. –

+0

Ich habe die Antwort bearbeitet, die Sie überprüfen können. –

+0

Bitte sagen Sie mir, wenn Sie es nicht haben. –