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

Posted

技术标签:

【中文标题】在 UITableView 中定义高度的自定义 UITableViewCell【英文标题】:Custom UITableViewCell with height defined in UITableView 【发布时间】:2010-03-19 04:33:22 【问题描述】:

我有一个自定义 UITableViewCell。在其函数 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 中,我需要知道在 tableView 函数 heightForRowAtIndexPath 中定义的单元格高度,以便我可以在单元格中正确定位 UITextField、UIButton 等。 .有什么想法吗?

【问题讨论】:

【参考方案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 进行动态高度的方式。

【讨论】:

以上是关于在 UITableView 中定义高度的自定义 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

UITableView的自定义以及自适应高度

具有静态单元的 UItableView 包含 2 个 UItableview,每个都有具有动态高度的自定义单元

实现 UITableView (Slave) 的动态高度,它作为子视图添加到另一个具有动态高度的 UITableView (Master) 的自定义单元格中

iOS >> UITableView 与 2 个不同的自定义 UITableViewCells 具有不同的高度

具有可变高度的自定义单元格

使用 UITableView 的可变高度自定义单元格调用 reloadData 时保持 UITableView 的当前位置