Ich arbeite am Texteditor für eine App. Ich benutze UITextView
Siehe den Beispielcode zum Laden der Textansicht.
%Vor%Die Größe des Textes beträgt ungefähr 400.000 Wörter.
Ich stehe vor folgenden Problemen.
Das Scrollen von Text wird zu langsam, wenn ich nach unten blicke und einige Apps aufgrund von Speicherproblemen abstürzen. Was ich denke, iOS speichert das gerenderte Textbild in seinem Speicher, wenn Textansicht nach unten gescrollt wird, aber wenn ich nach oben scrolle, gibt es den Speicher frei.
Wenn ich auf "Select All" klicke, dauert die Auswahl des Textes zu lange und nach der Textauswahl wird das Scrolling schlecht und manchmal stürzt die App aufgrund von Speicherproblemen ab, weil der Speicher zunimmt. Ich denke, dass iOS das Bild des vollständigen Textes (als ob es für den Benutzer sichtbar ist) in seinem Speicher erzeugt und dann den vollständigen Text auswählt und sein Bild behält, bis die Auswahl beendet ist. Nach der Auswahl ist der Speicher fertiggestellt, der von der App beibehalten wird.
Die andere Möglichkeit, den großen Text anzuzeigen, besteht darin, mehrere Textansichten zu verwenden und den Text nur wie UITableView einer sichtbaren Textansicht zuzuordnen. Dies erhöht jedoch die Komplexität, da ich die Anzahl der bei jedem textChanged-Delegiertenaufruf erforderlichen Textansichten neu zählen muss LayoutManager von UItextView.
Jeder Körper hat eine Idee, wie er großen attributierten Text in UITextView mit besserer Leistung anzeigen kann.
Erraten Sie, wie die iPages App funktioniert, weil sie Text anzeigt, wenn sich der Bereich im sichtbaren Bereich befindet.
Tags und Links objective-c ios uitextview nsattributedstring nslayoutmanager