如何从UiTableViewController访问自定义UITableViewCell上的属性?

时间:2012-10-29 03:35:04

标签: ios uitableview

我正在尝试从UitableViewController类访问自定义UiTableViewCell(子类UITableViewCell)上的label属性。例如,我有heightForRowAtIndexPath方法,我需要访问标签。

这是我的代码:

- (CGFloat)tableView:(UITableView *)tv heightForRowAtIndexPath:(NSIndexPath *)indexPath {

   // I need access to the custom UITableView Cell property here

}

任何提示?还可以在uiviewcontroller中声明插座并将其链接到自定义uitableviewcell上的标签吗?

由于

2 个答案:

答案 0 :(得分:1)

要从heightForRowAtIndexPath:访问单元格,请检查以下内容:


如果您需要在初始化后访问单元格标签,则需要将tag添加到自定义UITableViewCell类中的标签,然后您可以访问标签,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: @"cell"];
    UILabel *cellLabel = (UILabel *)[cell viewWithTag: 1];
}

答案 1 :(得分:0)

高度计算应使用数据模型中的数据进行,而不是视图。请记住,单元格是使用数据模型中的数据创建的。

您无法调用[tv cellForRowAtIndexPath:indexPath],因为这会导致tableView:cellForRowAtIndexPath:和此tableView:heightForRowAtIndexPath:方法之间的无限递归。

您可以尝试直接调用tableView:cellForRowAtIndexPath:方法来获取细胞但可能会产生不良副作用。