自定义UITableViewCell,其高度在UITableView中定义

时间:2010-03-19 04:33:23

标签: iphone uitableview

我有一个自定义的UITableViewCell。在它的函数 - (id)initWithStyle:(UITableViewCellStyle)样式的reuseIdentifier:(NSString *)reuseIdentifier中,我需要知道tableView函数heightForRowAtIndexPath中定义的单元格高度,这样我才能在单元格中正确定位UITextField,UIButton等。 。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我通常这样做的方法是在我的NSObject子类中添加一个方法,它将作为我的数据源对象(假设你使用这种基本方法,将进入数据源数组)。

例如。假设我们需要显示一堆博客帖子(纯文本),每个帖子都是一个单元格。由于每行都有可变高度,我创建了一个NSObject子类,称之为 BlogPostInfo 。在这个课程中,我添加了方法:

- (int)cellHeight;
{
    /* Perform a calculation with blog data, probably using sizeWithFont: */
}

由于您的数据对象中有此方法,因此您可以在UITableViewController中使用它:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    /* assuming blogPosts is an NSMutableArray or whatevs */
    return [[blogPosts safeObjectAtIndex:indexPath.row] cellHeight];
}

这就是我对tableviewcells的动态高度。