人。 我有UITableView与不同的单元格,我有代码,计算高度。在一个项目中,它工作得很完美,但在第二个项目中它返回高度等于0。 可能是什么导致了这个? 我的代码:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
CGFloat cellWidth = 320.0f;
CGSize size = [cell.textLabel.text sizeWithFont:cell.textLabel.font constrainedToSize:CGSizeMake(cellWidth, CGFLOAT_MAX) lineBreakMode:cell.textLabel.lineBreakMode];
CGFloat height = size.height;
NSLog(@"Height: %f", height);
return height;
}
答案 0 :(得分:3)
在heightForRowAtIndexPath:
委托方法之前调用cellForRowAtIndexPath:
委托方法。在您的代码中,您正在根据cell.textLabel.text计算单元格高度,但单元格中的文本尚未设置。
您需要从表格单元格以外的其他位置获取此方法中使用的文本(可能您可以从在cellForRowAtIndexPath中设置textlabel.text值时从中获取文本)。