ios: la mejor manera de mostrar de longitud variable, multi-línea de texto

Estoy pensando en la carga multi-párrafo contenido de un archivo de texto y mostrarlo en la interfaz de usuario. Voy a ser la carga de uno de los varios archivos de texto y no saber de antemano cuán largo es el texto que va a ser. Mi primera idea fue usar un UILabel dentro de un UIScrollView. Sin embargo, no parece UILabel se puede ampliar con base en el número de líneas que contiene. Es esto correcto?

Si UILabel no es la herramienta correcta para el trabajo, ¿qué debo usar? UIWebView? Se UIWebView controlar el desplazamiento perfectamente para mí?

InformationsquelleAutor morgancodes | 2011-04-21

2 Kommentare

  1. 20

    Retirar UITextView. Usted puede colocar una dentro de una UIView, y la vista de texto proporciona toda la funcionalidad de un desplazamiento de la vista, y más (es un UIScrollView subsclas).

    • Gracias. A primera vista parecía como si UITextView fue siempre editables. Voy a echar un vistazo y ver si tiene un readonly opción.
    • Sí, lo hace. Creo que es la editable de la propiedad. Conjunto a NO.
    • También se establece selectable a NO si usted no desea que el usuario sea capaz de copiar/pegar.
  2. 14

    Si usted no desea utilizar un UITextView, que es desplazable para acomodar cualquier texto que usted necesita, usted puede comprobar fuera de algunos métodos para calcular el tamaño de un UILabel, por ejemplo, sobre la marcha.

    Esto debe empezar en la dirección correcta: NSString tiene un par de UIKit categoría de métodos

    - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size;
    - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode;

    Llamar a estos métodos en un NSString, pasando en cualquier fuente que desea utilizar, así como el tamaño máximo. Por lo general, me va a limitar el ancho, pero le dan una gran altura por lo que puede que me haga saber lo que es la mejor de la altura. Estos métodos devuelven un CGSize que usted puede utilizar para establecer los marcos de la UILabels. Por ejemplo, si sé que el ancho máximo que puedo colocar la etiqueta en 300 puntos de ancho, voy a pasar un CGSizeMake(300, 2000) para la limitación de tamaño.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea