可调整大小的UITableViewCell

时间:2011-02-21 02:55:50

标签: iphone objective-c ios uitableview

是否可以创建一个自定义UITableViewCell,根据我想要放入的文本的长度调整大小?如果可能,我该怎么做?

3 个答案:

答案 0 :(得分:1)

@EquinoX是的,可以通过heightForRowAtIndexPath代表....请查看 this Dynamic Height UITableViewCell 他们有同样的问题。

祝你好运!

答案 1 :(得分:1)

绝对,

我喜欢通过传递一个模型(只是带有数据的NSObject)来设置我单元格上的所有数据。然后我创建一个可以由模型设置其数据的自定义单元格,并添加一个类级别函数来返回大小。它看起来像这样。

TableViewDelegate:

-(float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    XTableViewCellModel *model = [self modelForIndexPath:indexPath];
    return [XTableViewCell cellHeight:model];
}

XTableViewCell:

+(CGFloat)cellHeight:(XTableViewCellModel*)model {
    CGSize titleSize = [model.title sizeWithFont:model.titleFont
                         constrainedToSize:CGSizeMake(280, 9999)
                             lineBreakMode:UILineBreakModeTailTruncation];
    return titleSize.height;
}

请注意,将lineBreakMode设置为UILineBreakModelTailTruncation仅在达到9999点的高度后才会生效。在那之前,文本正常包装。

查看我的开源框架。它默认构建了许多可调整大小的单元格类型:https://github.com/andrewzimmer906/XCell

答案 2 :(得分:0)

请看这个Sample Code,它正是您正在寻找的。