2010-08-20 24 views

Respuesta

16

Puede establecer cell.detailTextLabel.numberOfLines = 2 para obtener 2 líneas allí. Sin embargo, dudo que UITableViewCell diseñe las etiquetas como se espera en ese caso. Es posible que desee subclasificar UITableViewCell y anular -layoutSubviews para colocar las etiquetas como desee. Puede llamar al [super layoutSubviews] y luego modificar las posiciones de las etiquetas. Probablemente desee utilizar -[NSString sizeWithFont:constrainedToSize:lineBreakMode:] para calcular el tamaño correcto para la etiqueta de texto de detalle.

Como alternativa, en lugar de subclasificar UITableViewCell, podría intentar hacer los ajustes en -tableView:willDisplayCell:forRowAtIndexPath:, aunque si la célula decide alguna vez que necesita volver a diseñar, se borrarán los ajustes. Te recomiendo que vayas con el enfoque de subclases.

Edición: Por cierto, con el enfoque subclase, todo lo que tiene que hacer es cambiar [UITableViewCell alloc] a [MyTableViewCellSubclass alloc]. Dado que no está introduciendo nuevos métodos o propiedades, la variable puede seguir escribiéndose como UITableViewCell y no tendrá que cambiar ningún otro código.

+0

Muchas gracias por la respuesta. Subclassed UITableViewCell pero creé una punta para diseñar las etiquetas en lugar de hacerlo programáticamente. ¿Sería eso diferente de lo que estás sugiriendo que haga? Gracias de cualquier manera. – mshaaban

+0

Crear una plumilla está perfectamente bien (aunque si tienes iOS 4.0, recomiendo usar 'UINib' para optimizar la carga de la punta). El beneficio de ajustar las etiquetas usando '-layoutSubviews' es que puedes reutilizar las propiedades existentes' textLabel' y 'detailTextLabel', pero de ninguna manera estás obligado a usarlas. –

+0

'cell.detailTextLabel' en versiones rápidas recientes ahora es opcional, por lo que' cell.detailTextLabel.numberOfLines = 2' debe ser 'cell.detailTextLabel! .numberOfLines = 2' –

Cuestiones relacionadas