我们可以从以下网站获取一个单元格:
UITableViewCell * cell = [self tableView:tableVie cellForRowAtIndexPath:indexPath]
但它会调用方法cellForRowAtIndexPath:
如果我知道单元格的标签或indexPath,那么有没有办法获取指定的单元而不能调用cellForRowAtIndexPath:
?
添加一些我无法呼叫cellForRowAtIndexPath:indexPath
我想获取方法cellForHeightAtIndexPath中的单元格来重置每个单元格的高度。 :
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell * cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
CommentsListResponseDataModel * model = self.liveCommentData[indexPath.row -1];
if (model.viewHeight > 0) {
return model.viewHeight;
} else {
if (model.parentComment) {
CommentParentCell * cc = (CommentParentCell *)cell;
return cc.viewHeight;
} else {
CommentSingleCell * cc = (CommentSingleCell *)cell;
return cc.viewHeight;
}
}
}
}
但这将成为一个死循环,因为所有cellForRowAtIndexPath:indexPath
和cellForRowAtIndexPath:indexPath
都会召回cellForHeightAtIndexPath:indexPath
答案 0 :(得分:0)
您似乎想要与原始问题无关的内容 - 您希望自己的表格视图单元格自动调整大小,具体取决于内容。
您需要做的是:
1.为您的单元格添加约束 - 确保它没有高度约束,但其内容必须具有顶部和底部约束。
2.删除heightForRowAtIndexPath
,因为没有必要
3.将表格视图行高设置为自动
tableView.rowHeight = UITableViewAutomaticDimension
现在只需设置您的单元格 - 将其内容调整为所需高度,表格单元格将自动调整大小
答案 1 :(得分:0)
据我所知,您正在尝试通过调用 UITableView数据源方法来获取单元格对象。但是当你尝试这样做时,它将是无限循环调用,你永远不会得到单元格对象。因此,为了从UITableView获取单元对象,请执行以下步骤。
将您的UITableView声明为ViewController的全局视图,例如UITableView *_tableView;
或@IBOutlet weak UITableView *_tableView;
然后尝试拨打
//specify the item indexpath NSIndexPath *_indexPath = [NSIndexPath indexPathForItem:3 inSection:1]; //now try to access cell object by passing cell indexPath UITableViewCell *_cell = [_tableView cellForRowAtIndexPath:_indexPath];