Dynamisches UITextView-Fehlstellungsverhalten

8

Ich versuche, eine Textansicht zu haben, die iPhone-Nachrichten ähnlich ist, wo die Textansicht anfänglich eine Einschränkung (height & lt; = 100) und scrollEnabled = false

hat

Dies ist ein Link zum Projekt: Ссылка

Die Höhe der Textansicht hängt von der Inhaltsgröße ab, wie im Bild auf der linken Seite, bis sie die Höhe 100 erreicht. Dann wird scrollEnabled auf true gesetzt. Es funktioniert einwandfrei, bis ich auf die "Senden" -Schaltfläche unten rechts klicke, wo die textView leer werden und zur ursprünglichen Höhe zurückkehren soll und scrollEnabled wird false. Das mittlere Bild zeigt, was passiert, wenn ich auf den Knopf klicke. Wenn ich anfange zu tippen, bewegt sich die Textansicht nach unten, wie Sie im letzten Bild rechts sehen. Ich möchte in der Lage sein, auf den Button zu klicken und das auf dem mittleren Bild gezeigte Verhalten zu eliminieren. Wie kann ich das beheben?

%Vor%

Sie können mein Problem replizieren, indem Sie die folgenden Schritte im github-Projekt ausführen:  1. Geben Sie weiter Wörter ein und drücken Sie Enter, bis Sie die Schriftrolle sehen  2. Klicken Sie auf die Schaltfläche, um zu sehen, dass die Textansicht blau angezeigt wird     Container. Das ist das Problem, das ich beseitigen möchte!

    
user3126427 20.07.2016, 01:37
quelle

3 Antworten

2

Versuchen Sie den folgenden Code: -

%Vor%     
Mitul Marsoniya 28.07.2016, 09:38
quelle
1

Ihr Problem besteht darin, dass die UITextView widersprüchliche Eigenschaften aufweist:

  • Platzieren Sie den Bildschirm
  • Größe

Die Größe, die eingeschränkt wird, wird ein Problem verursachen, wenn Sie eine größenveränderbare Textansicht benötigen. Wenn die Größe von TextView geändert wird, wird in diesem Fall auch dessen Position geändert.

Alternative Methode, um das Problem anzugehen:

Versuchen Sie, Einschränkungen für die Position in Bezug auf den unteren Bildschirmrand festzulegen. Wenn die Tastatur angezeigt wird, sollten Sie die TextView damit verschieben. Das Festlegen von Einschränkungen für die Höhe eines in der Größe veränderbaren TextView ist ebenfalls eine schlechte Übung, es sei denn, Sie planen, den Benutzer zum Scrollen zu zwingen.

Hoffe, das hilft.

    
Ryan Cocuzzo 22.07.2016 19:43
quelle
0

Wenn Sie das automatische Layout verwenden, sollten Sie auf Constraint aktualisieren, anstatt die textView.frame zu aktualisieren. Erstellen Sie eine IBOutlet für Ihre textView heightConstraint, und legen Sie dann die aktualisierte Höhe fest.

%Vor%     
Zac Kwan 23.07.2016 09:51
quelle

Tags und Links