Wie kann eine Tabellenzelle mit automatischer Größenänderung erstellt werden, um Texte wie in der iPhone-App "mail" einzugeben?

Ich versuche, etwas wie die Seite "Neue Nachricht" in Apples Mail-App auf dem iPhone zu emulieren. Ich habe es mit einer Tabellenansicht implementiert und es ist mir gelungen, die Zeilen "To", "CC" und "Subject" richtig zu verhalten, aber ich bin mir nicht sicher, wie ich den eigentlichen Nachrichtenteil der Seite implementieren soll.

Es gibt mehrere Probleme, die ich habe. Ich versuche gerade, es durch Platzieren einer UITextView in der Zelle zu implementieren (ich schalte die Bildlaufleisten in der Textansicht aus). Ich habe die Textansicht selbst die Größe ändern, wenn es geändert wird, indem Sie den Rahmen auf die neue Höhe des Inhalts ändern. Das erste Problem ist, dass ich dies auch für die Zellenhöhe selbst tun muss. Da heightForRowAtIndexPath anscheinend nur beim ersten Laden der Zeile aufgerufen wird, kann ich die Höhe dort nicht ändern. Ich nehme an, ich könnte reload data für die Tabelle aufrufen, aber dies scheint bei jeder Texteingabe wirklich ineffizient zu sein. Was ist der beste Weg, um die Tabellenzelle bei der Eingabe durch den Benutzer automatisch zu skalieren? Ich habe viele Beispiele gefunden, wie man es in einzelnen Tabellenansichten macht und wie man die Größe von Tabellenzellen bei der Initialisierung ändert, aber ich kann keine finden, mit denen Sie beide gleichzeitig machen können.

Abschließend möchte ich, dass der untere Rand der Tabellenzelle unsichtbar ist. Wenn Sie sich die Mail-App ansehen, werden Sie feststellen, dass am unteren Rand des Nachrichtenbereichs keine Zeile angezeigt wird, was bedeutet, dass Sie einfach weiter tippen können. Ich habe immer eine in meiner Tabellenansicht (auch wenn ich eine Fußzeile hinzufüge) und ich kann nicht herausfinden, wie ich sie loswerden kann. (Vielleicht sollte ich meinen Nachrichtentext zur Fußzeile selbst machen?)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage