Me gustaría hacer algún tipo de actualización de una UITextView para establecer la vista de texto en su estado original. Tengo un párrafo que se llena dinámicamente según en qué TableViewCell haga clic el usuario. Entonces, cuando se desplazan por el campo de texto, luego regresan y seleccionan otra celda y regresan, el texto cambia, pero la posición de desplazamiento permanece cuando el usuario la dejó. ¿Cómo puedo devolverlo a su estado predeterminado? ¡Gracias!Actualice la posición de desplazamiento de UITextView en el iPhone
Respuesta
Por estado predeterminado, ¿quiere decir que se desplazó hacia la parte superior? Si es así, estás en el camino correcto. Trate
[myTextView scrollRangeToVisible:NSMakeRange(0, 0)];
Lo intenté también, pero no pareció ir al verdadero nivel del texto. Solo llega cerca de la parte superior, pero no se ve como el predeterminado. Honestamente, no entiendo muy bien las cosas de NSRange. –
Acabo de probar esto con una aplicación que tengo, y funciona para mí. ¿Puedes publicar una captura de pantalla de tu simulador para que podamos ver el comportamiento? –
Aquí hay algunas capturas de pantalla: INICIAL, DESPLAZADO MANUALMENTE Y VOLVICADO http://www.angelfilm.net/external/stackoverflow/mos/ –
He descubierto que si puedo borrar la UITextView primero y luego aplicar el nuevo texto, se genera automáticamente un "scroll" de nuevo a la parte superior.
myTextView.text = @"";
myTextView.text = theRealTextContent;
Ninguno de estos enfoques funcionó satisfactoriamente para mí.
scrollRangeToVisible produce toneladas de artefactos visuales (un montón de desplazamiento cuando se cambia entre las grandes cadenas), y de hecho sólo funciona en absoluto en una llamada retardada se ha cambiado algún tiempo (utilicé 0,1 segundos) después de que los contenidos, no directamente como lo implica la respuesta de Shaggy Frog.
configurando el texto en @ "" antes de configurar los nuevos contenidos no ayuda, incluso con un retraso.
Parece como si una vez al UITextView se ha escrito, que siempre está en este modo en el establecimiento de nuevos contenidos provoca artefactos molestos desplazamiento. Intenté configurar selectionRange al comienzo de UITextView también, pero eso no ayudó. Enviar el mensaje resignFirstResponder antes de establecer los nuevos contenidos tampoco ayudó.
Debido a esto, decidí eliminar y volver a crear el UITextView cada vez que cambio los contenidos. Ese es un evento bastante raro (basado en la interacción humana) en mi aplicación que no es un problema de rendimiento. Era la única forma que podía encontrar para "cargar nuevos contenidos" en el UITextView sin toneladas de molestos artefactos de desplazamiento.
Mi experiencia es con OS3.2 (simulador de iPad)
[textview setScrollEnabled:YES];
textview.text = yourText;
[textview setScrollEnabled:NO];
. Realmente quería detener el desplazamiento de textView al actualizar el contenido , así que lo hice al revés y funciona sin problemas. Gracias. – soemarko
me las arreglé para obtener el resultado deseado - obligando al UITextView a 'scroll' a la parte superior de su contenido al editar extremos. Pero para lograrlo, TENGO que desactivar tanto el desplazamiento en textViewDidEndEditing Y TAMBIÉN restablecer el texto en el mismo método.
Habilizo de nuevo el desplazamiento en textViewDidBeginEditing.
- (void) textViewDidEndEditing: textView;
{
[textView setScrollEnabled: NO];
NSString* savedText = [textView text];
[textView setText:@""];
[textView setText: savedText];
}
Esto funciona si lo desea para desplazarse hasta la parte superior:
[theTextView scrollRangeToVisible:NSMakeRange(0, 0)];
El único problema es que esta anima su camino hacia arriba. Si usted quiere que se ajuste a la parte superior, utilice esto:
[theTextView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
Esta solución funcionó para mí. Cargué texto en viewDidLoad, cambié el ContentInset de UITextView y luego tuve que usar el scrollRectToVisible para alinearlo correctamente. Gracias – TMilligan
Lo que finalmente funcionó para mí lo que para borrar el contenido del texto y luego otra vez con el texto deseado en el siguiente bucle de ejecución.
// clear the text view
self.textView.text = ""
// set the text on the next run loop
dispatch_async(dispatch_get_main_queue()) {
self.textView.text = someText
}
- 1. Desplazamiento automático de iPhone UITextView, pero también permite el desplazamiento manual
- 2. iphone UIWebView almacenar la posición de desplazamiento actual?
- 3. UITextView dentro de UIScrollView problema de desplazamiento
- 4. ¿Cómo obtener la posición del cursor en una UITextView en el iPhone?
- 5. Establecer la posición de desplazamiento
- 6. Cómo establecer la posición del cursor en UITextView
- 7. UITextView y la posición de la ventana de autocorrección flotante
- 8. UITextView cambia la altura en lugar de desplazamiento
- 9. ¿Hay alguna manera de colocar el indicador de desplazamiento de UITextView fuera de UITextView?
- 10. iPhone - Problema con UITextView
- 11. cómo insertar texto en cualquier posición del cursor en uitextview?
- 12. UITextView desplazamiento automático hacia abajo
- 13. ¿Cómo puedo hacer que un desplazamiento UIScrollView sea una posición del cursor de UITextView?
- 14. posición del cursor en un UITextView
- 15. Recordar la posición de desplazamiento en el elemento QML
- 16. jQuery ui sortable tablerows actualice la posición número dentro de
- 17. CListCtrl: ¿Cómo mantener la posición de desplazamiento?
- 18. ¿Cómo se visualiza la barra de desplazamiento para UITextView siempre?
- 19. CSS establecer la posición de desplazamiento predeterminada
- 20. Mostrar div cuando la posición de desplazamiento
- 21. desplazamiento de iframe en el iphone
- 22. ¿Cambiar la posición de la barra de desplazamiento en TextBox?
- 23. posición de desplazamiento con jQuery
- 24. Programación de iPhone: Desactivar el corrector ortográfico en UITextView
- 25. ¿Obtiene los valores de desplazamiento UIScrollView actuales en el iPhone?
- 26. Obtener la posición del ratón en desplazamiento
- 27. Controlar la posición de visualización de autocorrección en el iPhone
- 28. Posición fija - Desplazamiento horizontal
- 29. MousePressEvent, desplazamiento de posición en QGraphicsView
- 30. PrimeFaces barra de desplazamiento de datos en la posición deseada
Como nota, he estado tratando de utilizar [myTextView scrollRangeToVisible: NSMakeRange ([longitud myTextView.text], 0)]; –