2011-10-12 16 views
11

estoy usando un UITextView para visualizar el texto de un xml .I analizado el xml y se almacena el texto en un NSArray y desde allí estoy añadiendo a un UITextview en mi código.UITextView no aparece hasta que se desplaza

problema: Cuando ejecuto el código, la vista de texto se muestra como vacía o con texto parcial, y cuando intento desplazar la vista de texto, se muestra el texto completo.

He añadido el UITextview a un UIView.

me pareció extraño y busqué en Google, pero no pude encontrar muchas respuestas que me ayudaron. Puede alguien responder a resolver el problema

TNQ

+0

Ha comprobado que su UITextView tiene el marco que esperas (se puede establecer el color de fondo para hacer comprobaciones visuales rápidas) – jbat100

+0

ya i asegurar que. – Dinakar

+0

También me enfrenté a este problema. Resolví este problema usando esta solución. [1]: http://stackoverflow.com/a/11147954/1635315 – iKT

Respuesta

0

UItextView hereda de UIScrollView. Eso significa que tiene funcionalidad de desplazamiento. Por lo tanto, si el contenido del UITextView es lo suficientemente pequeño como para caber en su marco, no es necesario desplazarse.

Pero, si es lo suficientemente grande, necesita desplazarse por el UITextView.

¿Tiene sentido esto?

Para obtener más información, consulte la referencia de clase de UITextView

+0

eso es cierto, pero mi caso es que el uitextView no muestra ningún dato antes de que sea desplazado. Al final debe ser la cantidad de datos que se ajusta en la vista de texto antes de que se desplaza. ¿No es así? – Dinakar

+0

Sí, eso es cierto. Déjame buscar algo sobre esto ... –

0

Asegúrese de que, método en el que u Definir texto de Vista de Texto es llamar cadena properly.And que u asignar a la vista de texto en formato de cadena es correcta (si no es así retener eso).

0

hay posibilidades de que los espacios en blanco y/o saltos de línea están allí antes de que el texto real. Recorte esos caracteres antes de asignarlos a la vista de texto.

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

He resuelto el problema borrando el TextView y añade el texto a la Vista de Texto de nuevo, no sé la funda exacto, pero mi problema está resuelto. en mi caso: Estoy cambiando el marco de la vista de texto desde el exterior a la vista al hacer clic en un botón. Mientras se hace clic en el botón, la vista de texto no muestra el contenido y en el desplazamiento se muestra.

resolví, borrando el texto de la vista de texto y volviendo a ingresar el texto al hacer clic en el botón.

+0

Estoy viendo el mismo problema ahora mismo. Empiezo con el UITextView fuera de la pantalla y luego lo deslizo con solo presionar un botón. Cargué la vista de texto con texto (más de 10 líneas) pero no se muestra hasta que el usuario toca la vista de texto. Esto parece un error de iOS o una "característica" extraña. Hacer la corrección anterior solo hace visible la primera línea ... duh. – Jonny

10

Encontré una SOLUCIÓN simple

Tenía el mismo problema. Cuando coloca texto en una UITextView que no está visible, no dibuja el texto.

tuve mi UITextView fuera de la pantalla y animado en este aspecto:

[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) { 
    } 
}]; 

cuando se vuelva a establecer el marco de la Vista de Texto, se re-dibuja su texto. Entonces, todo lo que necesita hacer es agregar la línea que marqué arriba antes de que aparezca su UITextView en la pantalla.

Saludos

+1

+1 Esto es una mierda para tener que hacer esto, pero esto definitivamente resolvió mi problema. –

+1

En mi caso, primero tuve que configurarlo en CGRectZero, luego restaurarlo. ¡Hombre! – Qiulang

+0

probablemente no es genial pero funciona – micromanc3r

0

Por favor, intente cuando su Textview está cargando

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

En mi caso mi texto se atribuye

0

Cuando se completa la operación que analiza el XML estás asegurando que su actualización está ocurriendo en el hilo principal?

UIKit solo actualiza el hilo principal, por lo que las actualizaciones que se realicen solo se mostrarán la próxima vez que toque el objeto y fuerce una actualización.

Como un ejemplo de una forma de hacerlo correctamente.

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 hereda de UIScrollView, así que simplemente desplácese.

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

Gracias por ahorrar mucho tiempo – Lukas

Cuestiones relacionadas