现在我像这样计算 TableViewCell 的高度heightForRowAtIndexPath
:
[string sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
但我发现它不准确,因为它里面有行空间。也就是说,当你有更多的行时,会有更高的空白。
那么大家是怎么计算身高的呢?
万分感谢!
现在我像这样计算 TableViewCell 的高度heightForRowAtIndexPath
:
[string sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
但我发现它不准确,因为它里面有行空间。也就是说,当你有更多的行时,会有更高的空白。
那么大家是怎么计算身高的呢?
万分感谢!
试试这个:
#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;
}
这将为您的单元格提供正确的高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGSize size = [string sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
return size.height;
}
我不使用您使用的方法,我这样做:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell;
YourCustomCell *yourCustomCell = [tableView dequeueReusableCellWithIdentifier:@"YourCustomCell"];
cell = yourCustomCell;
return cell.frame.size.height;
}