我有一个名为Comment的子类UITableViewCell,它有一个包含一些相关信息的UILabel。这些信息的长度各不相同,所以我不可能为UILabel设置合适的高度。
我试过让细胞动态化,但UILabel要么溢出细胞(y轴),要么细胞太大。
请你能告诉我哪里出错了!!
tableView... cellForRowAtIndexPath...
[cell->commentText setLineBreakMode:UILineBreakModeWordWrap];
[cell->commentText setMinimumFontSize:14];
[cell->commentText setNumberOfLines:0];
[cell->commentText setFont:[UIFont systemFontOfSize:14]];
NSString *text = [cell->commentText text];
CGSize constraint = CGSizeMake(320, 20000.0f);
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
[cell->commentText setText:text];
[cell->commentText setFrame:CGRectMake(20, 40, 280, MAX(size.height, 125))];
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *text = [[[comments objectAtIndex:indexPath.row] body] stringByStrippingHTML];
CGSize constraint = CGSizeMake(320, 20000.0f);
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
CGFloat height = MAX(size.height, 125);
return height + 20;
}
答案 0 :(得分:0)
您是否正在剥离cellForRowAtIndexPath:
中的html?
我已经以两种不同的方式动态调整了标签的大小:
1)在IB中,将标签固定在单元格的顶部和底部,并将其高度设置为灵活(在右侧面板中的标尺图标下)。然后,只需实施heightForRowAtIndexPath
即可。
2)在cellForRowAtIndexPath
中,设置标签的宽度,然后调用[label sizeToFit]
。使用相同的heightForRowAtIndexPath
。