我正在尝试从UitableViewController类访问自定义UiTableViewCell(子类UITableViewCell)上的label属性。例如,我有heightForRowAtIndexPath方法,我需要访问标签。
这是我的代码:
- (CGFloat)tableView:(UITableView *)tv heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// I need access to the custom UITableView Cell property here
}
任何提示?还可以在uiviewcontroller中声明插座并将其链接到自定义uitableviewcell上的标签吗?
由于
答案 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:
方法来获取细胞但可能会产生不良副作用。