我在UITableViewCell中使用collectionview,我需要更改collectionview的高度以显示所有内容。因此,我监视collectionview的内容大小,更新该高度并重新加载单元格。
- (void)setData:(Attachment *)attachment andReload:(void (^)(void))reloadAction {
self.reloadBlock = reloadAction;
[super setData:attachment];
[self setUpTag];
}
这是我在单元格中设置数据的地方
DocumentDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell)
cell = [DocumentDetailCell loadFromNib];
[cell setW:CGRectGetWidth(self.view.frame)];
DocumentsCollection *dc = self.documents[indexPath.section - 1];
[cell setTag:indexPath.row];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
[cell setData:dc.attachments[indexPath.row] andReload:^{
[tableView reloadData];
}];
[cell hideOrUnhideSeparator:(indexPath.row == dc.attachments.count - 1)];
return cell;
这就是我创建单元格的方式。
{{1}}
问题是我重新加载后,集合视图的内容大小再次发生变化!结果,它变成了一个循环,它永远不会结束。我尝试过reloadRow和beginUpdate / EndUpdate。这也不太好。我该怎么办?