2009-12-11 6 views
15

Estoy intentando averiguar cómo copiar el estilo UITableViewCellStyleValue2 para que el texto de detalle pueda tener varias líneas, como se ve en las celdas de 'dirección' en la aplicación Contactos. Al igual que la aplicación Contactos, algunos de los campos (como el nombre de la calle) son opcionales; por lo que mostraría decir 3 líneas en lugar de 4, si la calle no fuera nula.UITableViewCell multilínea utilizando el estilo UITableViewCellStyleValue2

¿Echas un truco o tengo que crear una celda personalizada en IB? ¿Cómo asegurar el alineamiento de texto y etiquetas de texto detalladas con otras celdas UITableViewCellStyleValue2?

Gracias por cualquier consejo.

Respuesta

1

Me parece que tendrá que crear una UITableCell personalizada. La única manera de garantizar que las líneas de texto sean correctas es que los valores de ancho de margen/texto sean correctos, lo que se puede hacer mediante prueba y error, o utilizando una herramienta de medición como xScope.

0

También tuve el problema de que el textLabel y el detailTextLabel tenían una posición diferente. Solución: para el detailTextLabel utilice la misma altura que el texto Etiqueta (por ejemplo, 13)

1

Cree una celda personalizada para su tabla y coloque un UILabel y una UITextView dentro de ella. Coloque la etiqueta & vista de texto para hacer coincidir sus posiciones x, y con las otras celdas que está utilizando en esa tabla. Inserta "\ n" en el texto de la vista de texto donde quiera que ocurran los saltos de línea. Cambiar el tamaño de la altura TextView en función del número de líneas en la Vista de Texto utilizando algo como:

CGRect frame = yourTextView.frame; frame.size.height = yourTextView.contentSize.height; yourTextView.frame = frame; return frame.size.height + 20.0; // Pad the cell's height as necessary for your applicaion

+1

Normalmente, es difícil definir dónde debe poner un salto de línea. – Raptor

Cuestiones relacionadas