如何使UITableView行动态地与其中的标签一样宽?

时间:2011-11-14 14:33:52

标签: objective-c ios uitableview

我有一个UITableView,其中每行可以有一个标签,从无线到任意数量的线(实际上是3-4)。我希望根据UILabelView内容扩展行。

到目前为止,我有这个:

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CGFloat  height        = 60.0;

UIFont *font        = [UIFont fontWithName:@"Helvetica-BoldOblique" size:10.0];
NSString *text      = reminder.notes; //the text that will be in the UiLabelView
CGFloat notesHeight = [text sizeWithFont:font
                               constrainedToSize:CGSizeMake(250.0, 4000.0)
                                   lineBreakMode:UILineBreakModeTailTruncation].height;

height += notesHeight;

return height;

}

我仍然得到了棘手的结果。我能做些什么来实现我的目标?

谢谢

1 个答案:

答案 0 :(得分:1)

您正在使用UILineBreakModeTailTruncation作为lineBreakMode,它将始终生成一行,然后sizeWithFont:constrainedToSize:lineBreakMode:将返回该单行所需的大小。

请尝试UILineBreakModeWordWrap

修改:我希望您已将numberOfLines的{​​{1}}属性设置为UILabel(零),以便您的标签可以绘制多个线。