只是一个简单的问题。 是否有简单的方法根据单元格中包含的文本动态设置单元格高度? 场景: 分组表视图有两个部分。第一节和第二节包含数据库中的文本(文本长度不同)。
我已经查看了一些教程和代码片段,但似乎没有任何帮助(或者我太厚了,无法正确使用)。
我希望得到一些建议或教程的链接,甚至更好的一些编码想法!
谢谢你!答案 0 :(得分:3)
好的,答案是: (虽然没有完成) 我有一个问题,并希望得到一些帮助,因为它让我发疯! (我得到一个警告:控制到达无效功能的结束)
有人可以帮忙吗?
这是代码!
#pragma mark -
#pragma mark UITableViewDelegate methods
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self newOrReusableCell];
if (indexPath.section == A_SECTION) {
NSUInteger row = indexPath.row;
NSString *text = [_centerArray objectAtIndex:row];
UILineBreakMode lineBreakMode = cell.textLabel.lineBreakMode;
CGFloat width = _tableView.contentSize.width - (kTableCellHPadding*2 + tableCellMargin*2);
UIFont* font = cell.textLabel.font;
CGSize size = [text sizeWithFont:font
constrainedToSize:CGSizeMake(width, CGFLOAT_MAX)
lineBreakMode:lineBreakMode];
if (size.height > kMaxLabelHeight) {
size.height = kMaxLabelHeight;
}
return size.height + kTableCellVPadding*2;
}
if (indexPath.section == B_SECTION) {
NSUInteger row = indexPath.row;
NSString *text = [_leftArray objectAtIndex:row];
UILineBreakMode lineBreakMode = cell.textLabel.lineBreakMode;
CGFloat width = _tableView.contentSize.width - (kTableCellHPadding*2 + tableCellMargin*2);
UIFont* font = cell.textLabel.font;
CGSize size = [text sizeWithFont:font
constrainedToSize:CGSizeMake(width, CGFLOAT_MAX)
lineBreakMode:lineBreakMode];
if (size.height > kMaxLabelHeight) {
size.height = kMaxLabelHeight;
}
return size.height + kTableCellVPadding*2;
}
}//i get the WARNING here!!