代码之家  ›  专栏  ›  技术社区  ›  Wayne Lo

在UITableView中定义高度的自定义UITableViewCell

  •  0
  • Wayne Lo  · 技术社区  · 14 年前

    我有一个自定义的UITableViewCell。在函数(id)initWithStyle:(uiTableViewCellStyle)Style ReuseIdentifier:(nsString*)ReuseIdentifier中,我需要知道TableView函数heightForRowatindexPath中定义的单元格高度,以便在单元格中正确定位uiExtField、uiButton等。有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Sahil    14 年前

    我通常这样做的方法是向nsobject子类添加一个方法,该方法将充当我的数据源对象(进入数据源数组的内容,假设您使用的是这个基本方法)。

    比如说我们需要显示一堆博客文章(纯文本),每一篇文章都是一个单元。因为每一行的高度都是可变的,所以我创建了一个nsObject子类,称之为 blogpostinfo(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进行动态高度处理的方法。