Ich habe eine UITextView
erstellt, die dynamisch in einer UITableViewCell
als Person typisiert ist.
Auf iOS 10 wird der Cursor% UITextView
automatisch gefolgt von sehr wenig Code benötigt.
In der UITextViewDelegate
Methode textViewDidChange:
habe ich diesen Code benutzt, der die Größe der Textansicht aktualisiert hat, ohne herumzuspringen.
In iOS 11 funktioniert das nicht mehr und wenn ich tippe, verschwindet der Cursor unter der Tastatur. Beachten Sie, dass ich keine Änderungen brauchte, als die Tastatur erschien.
Ich weiß, dass es bei iOS 11 Änderungen bezüglich der Funktionsweise von Inhaltseinschüben gegeben hat, aber ich konnte nicht herausfinden, welche Änderungen ich vornehmen müsste, damit dies funktioniert.
Wo sollte ich nach diesen Änderungen suchen, um es zu reparieren?
- Aktualisieren -
Es würde sich herausstellen, dass das Entfernen all dieses Codes mein Problem in iOS 11 löst und dass iOS 11 Punkte scrollt, um dem Cursor zu folgen, während ich automatisch ohne Probleme tippe.
Das einzige Problem, das ich noch habe, ist, dass ich nur bis zu 28 Textzeilen in die UITextView schreiben kann, bevor die UITextViews Größe nicht mehr aktualisiert wird.
Ich habe das gleiche Problem, eine UITableViewController mit einer UITableViewCell, die eine nicht-scrollbare editierbare UITextView in einer Zelle enthält, und der Cursor würde hinter der Tastatur in iOS11 gehen. Hat in früheren iOS-Versionen funktioniert.
Ich habe endlich eine Lösung gefunden, die auf diesem und anderen Artikeln basiert:
%Vor%Hoffe das hilft jemandem ...
In Ihrer Datenquelle cellForRow
method:
Es ist auch gut, eine minimale Höhenbeschränkung für die Textansicht zu haben (für z.B. & gt; = 44)
Ich verwende die sabe-Methode, um eine textView zu aktualisieren, und es funktioniert gut für mehr als 28 Zeilen Text, stellen Sie sicher, dass Sie alle diese Eigenschaften gesetzt haben:
%Vor% auch wenn ich den textView text definiere rufe ich textView.sizeToFit()
Ab XCode 9 wird die Berechnung der Reihe automatisch durchgeführt, sobald Sie Eigenschaften im Größeninspektor der Tabellenansicht festgelegt haben. Hier können Sie überprüfen dies im Bild
und ich verrückte eine Veränderung in func textViewDidChange(_ textView: UITextView)
Unten ist mein Code
und es funktioniert gut für mich in iOS 11
Sie können auch Einschränkungen sehen, die einfach sind, und ich verwende sie ohne Ränder.
Und Ihr Textview-Cursor-Problem würde ich vorschlagen, IQKeyboardManager , es wird alle diese Dinge verwalten.
Tags und Links uitableview ios uitextview swift autolayout