2009-03-06 14 views
9

Quiero mostrar un texto con muchas líneas. Agregué una etiqueta multilínea a una vista de desplazamiento, pero no mostró nada. Parece que esta no es la forma correcta de usar la vista de desplazamiento. ¿Cómo usar la vista de desplazamiento para que los usuarios puedan arrastrar hacia abajo para ver más texto?¿Cómo usar la vista de desplazamiento en el iPhone?

+4

No tengo nada que agregar, pero su nombre es increíble. – Patrick

+0

@Patrick ... sí ... :) – rockey

Respuesta

10

Puede simplemente usar una UITextView. Es un elemento secundario de UIScrollView, y si establece su propiedad de texto en una cantidad de texto que no cabe dentro de su marco, la vista se convertirá en desplazable.

21

UIScollView documentation de Apple es bastante bueno, debe comenzar allí y entender la clase.

Piense en una vista de desplazamiento como una gran superficie de visualización sobre la que se desliza la pantalla *. Puede agregar subvistas a la vista de desplazamiento y luego desplazarse es como colocar la pantalla sobre la vista de desplazamiento: la pantalla actúa como una ventana a través de la cual puede ver parte del contenido de la vista de desplazamiento a continuación.

Para hacer esto, una vista de desplazamiento tiene algunas propiedades adicionales sobre una UIView normal, pero es como una UIView en un aspecto imprtante: no representa ningún contenido directamente. Necesita agregar una subvista para dibujar su texto. Una vista de desplazamiento está configurada y se muestra exactamente de la misma manera que una UIView; es decir, usted configura el marco para agregarlo a otra vista y para mostrar su texto necesita agregar subvistas al UIScrollView que realmente puede representar el texto.

Para configurar un UIScrollView básico que solicite, debe simplemente crearlo como una vista de pantalla completa normal: configure el marco para que tenga el mismo tamaño que la ventana y agregue la vista de desplazamiento a la ventana como subvista. Luego, haga una gran UITextView para contener su texto. La vista UIText puede ser tan grande como desee, específicamente puede ser más grande que la pantalla. establezca la propiedad contentSize de UIScrollView para que sea la misma que el marco de UITextView y luego agregue la vista UIText como una subvista de UIScrollView.

Una vez que tenga esto funcionando, puede mover el contenido automáticamente con la propiedad contentOffset, controlar el zoom y configurar un delegado para observar los eventos de desplazamiento.

* más exactamente, sobre el cual se desliza el marco, pero asumo que está haciendo una pantalla completa UIScrollView. Estoy seguro de que puedes generalizar si quieres una vista más pequeña.

1

Utilicé UIScrollVer de esta manera un panel de instrucciones en una de mis aplicaciones. Funcionó, pero no estaba contento con el resultado. Luego cambié a usar UIWebView y he estado mucho más feliz con el resultado. Maneja el tamaño de la vista de desplazamiento automáticamente, obtengo todas las capacidades de formato de HTML y puedo tener enlaces que van a información adicional (o sitios externos) con solo agregar otro archivo HTML y tal vez algún código de delegado. Aquí está el código que solía (y he añadido el archivo HTML en mi aplicación como un recurso):

NSString *path = [[NSBundle mainBundle] pathForResource:@"instructions" ofType:@"html"]; 
NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path]; 
NSString *htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding]; 
[self.instructionsView loadHTMLString:htmlString baseURL:nil]; 
1

U puede hacer referencia a esta página web http://www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone/

T seguir el paso a paso para hacer la vista de desplazamiento en el iphone ... buena suerte :)

+0

Parece ser un usuario genuino de SO en lugar de un spammer. Por lo tanto, es un poco desconcertante por qué ha publicado la misma respuesta tres veces. Debes eliminar un par de estos duplicados antes de ser penalizado. – APC

+0

@APC dijiste penalizado. Ya borré; la única pena proviene de que la comunidad rechace sus respuestas. – Will

+0

@Will: las personas también están marcando sus respuestas como spam. Así que el representante de jennifer gotea de dos maneras, aunque supongo que ahora no alcanzará las "seis banderas" mágicas, y las banderas de spam existentes desaparecerán después de dos días. – APC

Cuestiones relacionadas