Probleme beim Ändern der Größe von UITextView, wenn die Tastatur in iOS 7 angezeigt wird

8

Ich ziele nur auf iOS7.

Ich möchte ein UITextView "skalieren", wenn die Tastatur angezeigt wird, so dass der gesamte Text sichtbar ist, anstatt hinter der Tastatur verborgen zu sein.

Ich habe ein paar verschiedene Ansätze dazu in Betracht gezogen ...

1) Ändern Sie den Rahmen von UITextView , wenn die Tastatur angezeigt wird.

Die folgende Frage beschreibt das gleiche Problem, das ich bei diesem Ansatz habe: Obwohl der Frame korrekt gesetzt ist, wird die letzte Zeile / der letzte Cursor über die Grenzen von UITextView hinausgehen und daher außer Sichtweite sein:

UITextView-Cursor unter Frame, wenn Frame geändert wird

Sie können diesen Effekt im folgenden Screenshot sehen. Der UITextView hat einen grünen Hintergrund. Es wurde zu einem UIView mit einem roten Hintergrund hinzugefügt. Der Pfeil zeigt an, wo der Cursor steht ...

2) Ändern der Eigenschaft contentInset für UITextView

Ich glaube, dass dieser empfohlene / bevorzugte Ansatz. Hinweis: Ich habe die Apple-Dokumentation zum Ändern der Größe von Ansichten auf der Basis des Erscheinens / Verschwindens der Tastatur gelesen:

Ссылка

Mit meinem Code bekomme ich keinen Effekt, wenn ich die untere Komponente von UIEdgeInsets ändere.

Gleiches Beispiel wie oben, grün UITextView auf einem roten UIView , der Text verschwindet unter der Tastatur:

Und hier ist der Code:

%Vor%

Hinweis : Der scrollIndicatorInsets part funktioniert einwandfrei . Es ist schwierig, mit einem Screenshot darzustellen, aber die Bildlaufanzeige beginnt und stoppt an der richtigen Stelle und scheint die richtige Größe zu haben.

Ich habe eine Reihe von Fragen gelesen, bei denen Menschen ein ähnliches Problem hatten.

3) Ändern der textContainerInset in UITextView

Die Antwort zu dieser Frage schlägt vor, textContainerInset anstelle von contentInset auf iOS 7 zu verwenden:

UITextView contentInset funktioniert nicht in UITextView auf iOS 7?

Ich habe das auch versucht, aber es gelingt mir immer noch nicht, die UITextView zu ändern.

In dieser Frage hat 'mann' auch Probleme mit contentInset und textContainerInset :

UITextView-Inhalt Insert Bottom funktioniert nicht iOS7

Fragen

  • Welches ist der richtige / bevorzugte Ansatz, textContainerInset oder contentInset ?
  • in dem oben gezeigten Code für die Einstellung der contentInset , fehlt mir etwas? Gibt es noch etwas, das ich einstellen muss?
  • sind diese Bugs mit iOS 7?

Danke

    
Gavin Hope 15.12.2013, 18:18
quelle

1 Antwort

5

Es ist ein Fehler in iOS 7. Pete Stenberger löste das mit einer Unterklasse von UITextView. Sie können es hier finden:

Ссылка

Hier finden Sie weitere Informationen:

Ссылка

    
josema.vitaminew 29.01.2014 16:18
quelle

Tags und Links