Okay..so before you mark this is as a repeated question, read it. I’ve implemented the code given by CIMGF for dynamic resizing of UITableViewCell. It worked for the first time around but does not seem to work now. Strange, right?
Anyway, here are the code snippets:
- (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);
}
and the corresponding code for cellForRowAtIndexPath is:
[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];
Where the values 45,20,260 are set by me to get the exact location of starting point of text in the cell and it’s width. The values are correct and need no modification. However, When I execute the code, I get the right height for the cell (Dynamically adjustable according to the text) BUT the descriptionLabel shows maximum of 2 lines text. It truncates the text after that. 🙁
Your constraint for the description label contains two constants
CELL_CONTENT_WIDTHandCELL_CONTENT_MARGIN, whereas theCGRectyou are creating contains a number (260). IfCELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2)> 260 then this should be your problem.