Altura dinámica de UITableViewCell
Bien, antes de marcar esto es como una pregunta repetida, léelo. He implementado el código dado por CIMGF para cambiar el tamaño dinámico deUITableViewCell
. Funcionó por primera vez, pero no parece funcionar ahora. Extraño, ¿verdad? De todos modos, aquí están los fragmentos de código:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
NSString *text = [[buzzList objectAtIndex:[indexPath row]] objectForKey:@"description"];
CGSize constraint = CGSizeMake(260, 20000.0f);
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
CGFloat height = size.height;
return height +25 +(CELL_CONTENT_MARGIN * 2);
}
y el código correspondiente paracellForRowAtIndexPath
es:
[cell.descriptionLabel setLineBreakMode:UILineBreakModeWordWrap];
[cell.descriptionLabel setMinimumFontSize:FONT_SIZE];
[cell.descriptionLabel setNumberOfLines:0];
[cell.descriptionLabel setFont:[UIFont systemFontOfSize:FONT_SIZE]];
CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize size = [[[buzzList objectAtIndex:indexPath.row] objectForKey:@"description"] sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
cell.descriptionLabel.text=[[buzzList objectAtIndex:indexPath.row] objectForKey:@"description"];
CGRect rect=CGRectMake(45, 20, 260, size.height);
[cell.descriptionLabel setFrame:rect];
Donde los valores 45,20,260 se establecen por mí para obtener la ubicación exacta del punto de inicio del texto en la celda y su ancho. Los valores son correctos y no necesitan modificación. Sin embargo, cuando ejecuto el código, obtengo la altura correcta para la celda (ajustable dinámicamente según el texto)BUT
ladescriptionLabel
Muestra un máximo de 2 líneas de texto. Trunca el texto después de eso. :(