Scrolling Performance-Problem mit UItextView mit großem NSAttributedString

9

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.

    
us_jt 18.02.2014, 11:26
quelle

1 Antwort

1

Sie sollten nicht den gesamten Text direkt laden. Sie sollten den Text laden, der doppelt so viel wie die Textanzeigekapazität ist.

Verfolgen Sie jetzt das Bildlaufereignis und ändern Sie die Zeichenfolge dynamisch.

    
Apurv 18.02.2014 11:37
quelle