0

现在我像这样计算 TableViewCell 的高度heightForRowAtIndexPath

[string sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];

但我发现它不准确,因为它里面有行空间。也就是说,当你有更多的行时,会有更高的空白。

那么大家是怎么计算身高的呢?

万分感谢!

4

3 回答 3

0

试试这个:

#define CELL_CONTENT_WIDTH 320.0f // if you are using iPhone
#define CELL_CONTENT_MARGIN 20.0f // if you are using iPhone
#define FONT_SIZE 16.0f // if you are using iPhone


-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

CGFloat height = MAX([[yourArray objectAtIndex:[indexPath row]] sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f) lineBreakMode:NSLineBreakByWordWrapping].height, 44.0f)+ (CELL_CONTENT_MARGIN * 1.5);


return height;
}
于 2013-06-17T14:09:28.903 回答
0

这将为您的单元格提供正确的高度。

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
         CGSize size = [string sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
       return size.height;
    }
于 2013-06-17T13:49:35.190 回答
0

我不使用您使用的方法,我这样做:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell;    
    YourCustomCell *yourCustomCell = [tableView dequeueReusableCellWithIdentifier:@"YourCustomCell"];
    cell = yourCustomCell;    
    return cell.frame.size.height;
}
于 2013-06-17T13:49:07.237 回答