2011-10-12 14 views
11

Sto usando un UITextView per visualizzare il testo da un xml .I analizzato l'xml e memorizzato il testo in un NSArray e da lì mi sono l'aggiunta ad un UITextview nel mio codice.UITextView non mostra fino a che non viene fatto scorrere

problema: Problema: Quando eseguo il codice, la vista testo viene visualizzata come vuota o con testo parziale, e quando provo a scorrere la vista testo viene visualizzato l'intero testo.

Ho aggiunto il UITextview a UIView.

l'ho trovato strano e cercato su Google ma non ho trovato molte risposte che mi aiutino. Qualcuno mi può rispondere a risolvere il problema

TNQ

+0

Hai controllato che il vostro UITextView ha la struttura che ci si aspetta (è possibile impostare il colore di sfondo per rendere rapidi controlli visivi) – jbat100

+0

ya mi assicuro che. – Dinakar

+0

Ho anche affrontato questo problema. Ho risolto questo problema utilizzando questa soluzione. [1]: http://stackoverflow.com/a/11147954/1635315 – iKT

risposta

0

UItextView eredita da UIScrollView. Ciò significa che ha funzionalità di scorrimento. Pertanto, se il contenuto di UITextView è sufficientemente piccolo da stare nel suo frame, non è necessario scorrere.

Tuttavia, se è sufficientemente grande, è necessario scorrere lo UITextView.

Ha senso?

Per ulteriori informazioni, consultare il riferimento di classe UITextView

+0

questo è vero, ma il mio caso è che uitextView non mostra alcun dato prima che sia Scorrimento. Dovrebbe essere la quantità di dati che si adatta alla vista testuale prima di essere scorsa. Non è vero? – Dinakar

+0

Sì, è vero. Fammi cercare qualcosa su questo ... –

0

Assicurarsi che, metodo in cui u impostare il testo di TextView è chiamare stringa properly.And che u assegnare alla visualizzazione del testo è in formato corretto stringa (se non così trattenere esso).

0

ci sono possibilità che gli spazi bianchi e/o ritorni a capo ci sono prima del testo vero e proprio. Ritaglia questi caratteri prima di assegnarli alla visualizzazione del testo.

NSCharacterSet *charset = [NSCharacterSet whitespaceAndNewlineCharacterSet]; 
NSString *text = [parsedString stringByTrimmingCharactersInSet:charset]; 
textview.text = text; 
1

ho risolto il problema deselezionando la TextView e aggiunto il testo al TextView di nuovo, non so il Funda esatta, ma il mio problema è risolto. nel mio caso: sto cambiando la cornice della vista testo dall'esterno alla vista facendo clic su un pulsante. Quando si fa clic sul pulsante, la vista testo non mostra il contenuto e sullo scorrimento mostra.

Ho risolto, eliminando il testo da textview e rientrando nel testo facendo clic sul pulsante.

+0

Sto vedendo lo stesso problema adesso. Inizio con UITextView disattivato e poi lo faccio scorrere con la semplice pressione di un pulsante. Ho caricato la vista testo con il testo (più di 10 righe) ma non viene visualizzata finché l'utente non tocca la visualizzazione testo. Questo sembra un bug iOS, o "feature" bizzarra. Fare la correzione sopra rende solo la prima linea visibile ... duh. – Jonny

10

Trovato una SOLUZIONE semplice

Aveva lo stesso problema. Quando metti il ​​testo in un UITextView che non è visibile, non disegna il testo.

ho avuto il mio UITextView fuori dallo schermo e animato in questo modo:

[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationCurveEaseOut animations:^{ 
    self.contentView.center = CGPointMake(self.contentView.center.x + move * (self.contentView.frame.size.width /2), self.contentView.center.y); 
    self.textView.frame = self.textView.frame; // <<<--- ADD THIS LINE 
    } completion:^(BOOL finished) { 
    if (finished) { 
    } 
}]; 

Quando si re-impostare telaio del TextView, ri-disegna si tratta di testo. Quindi tutto ciò che devi fare è aggiungere la riga che ho indicato sopra prima che UITextView venga visualizzato sullo schermo.

Acclamazioni

+1

+1 Questo fa schifo doverlo fare, ma questo risolve definitivamente il mio problema. –

+1

Nel mio caso ho dovuto prima impostarlo su CGRectZero, quindi ripristinarlo. Uomo! – Qiulang

+0

probabilmente non è bello ma funziona – micromanc3r

0

Si prega di provare quando il tuo textView sta caricando

NSAttributedString *oldtext = objTextView.attributedText; 
[objTextView removeFromSuperview]; 
objTextView.attributedText = oldtext; 
[self.view addSubview:objTextView]; 

Nel mio caso il mio testo è attribuito

0

Quando si completa l'operazione che analizza il XML stai assicurando che l'aggiornamento si sta verificando sul thread principale?

UIKit si aggiorna solo sul thread principale in modo che eventuali aggiornamenti effettuati vengano visualizzati solo la prossima volta che si tocca l'oggetto e si forza un aggiornamento.

Come esempio di un modo per farlo correttamente.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 

    [self parseXMLOffMainThread]; 

    dispatch_async(dispatch_get_main_queue(), ^{ 

     self.myTextView.text = parsedText; 

     });   

}); 
5

UITextView eredita da UIScrollView, quindi basta scorrere esso.

[detailsTextView setContentOffset:CGPointMake(0, 1) animated:YES]; 
+0

Grazie per aver risparmiato un sacco di tempo – Lukas

Problemi correlati