/ / iOS - UITextView non disegna il testo? - iphone, goal-c, ios, uiview, uitextview

iOS - UITextView non disegna il testo? - iphone, objective-c, ios, uiview, uitextview

Ho un UITextView sullo schermo. Questo UITextView è coperto da un UIView.

Quando imposto il testo per questo UITextView, se textView non è visibile (UIView lo copre), non disegna il testo.

Quindi quando rimuovo la vista che copre il mio textView non c'è testo nel mio textView. Se provo a scorrere la visualizzazione del testo, il testo apparirà all'improvviso.

un modo per forzare l'UITextView a disegnare il testo in ogni momento? (Questo succede solo quando ho troppo testo (circa 1000 caratteri))

Ho provato a chiamare [textView setNeedsDisplay], prima e dopo aver impostato "testo" e non ha risolto il problema

risposte:

1 per risposta № 1

La maggior parte delle cose nel sistema non verranno visualizzate se nascoste, il che sarebbe uno spreco di risorse.

L'approccio corretto è chiamare setNeedsDisplay: su UITextView DOPO che è stato nascosto, quindi dovrebbe disegnare immediatamente.


4 per risposta № 2

Ho lo stesso problema, il mio UITextView nodisegna il testo fino a quando provo a farlo scorrere o al suo genitore. [textView setNeedsDisplay] non funziona per me. Infine, aumento textView 1px e il problema è sparito.

CGRect frame = textView.frame;
frame.size.height += 1;
textView.frame = frame;

So che questo metodo è brutto ma funziona.


0 per risposta № 3

Il limite al numero di caratteri in a UITextView sembra essere relativamente basso (vedi il post qui).

Il poster nel link che ho pubblicato suggerisce di inserire i tuoi contenuti in a UIWebView, che può gestire una grande quantità di testo.


0 per risposta № 4

Stesso problema. Abbiamo una visualizzazione di testo che è configurata e messa in vista mentre è nascosta o fuori schermo. Molto probabilmente a causa dell'ottimizzazione di Apple UITextView in modo che non esegua layout e disegni a meno che non sia sullo schermo e visibile.

chiamata setNeedsDisplay non funziona a causa delle ottimizzazioni. setNeedsDisplay viene chiamato abbastanza spesso, quindi immagina a UITextView fare layout e disegni abbastanza spesso? Quindi la soluzione sopra è brutta ma funziona: aggiungi un pixel al frame che attiverà il UITextView per ridimensionare e ridisegnare. Siamo andati con questa soluzione.


0 per risposta № 5

Poiché UITextView è una sottoclasse di UIScrollView, ho fatto qualcosa del genere:

CGPoint offset = self.textView.contentOffset;
offset.y++;
[self.textView setContentOffset:offset];
offset.y--;
[self.textView setContentOffset:offset];

lo stesso di @ Tùng Đỗ senza cambiare la cornice ... sembra ancora brutto.