使用场景
某个tableView A的某个cell A上有一个tableView B,tableView B上的cell高度是动态,要求tableView A的cell A的高度要和tableView B的高度一样。
效果图
0.table嵌套table.jpgcell A中的核心代码:
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority verticalFittingPriority:(UILayoutPriority)verticalFittingPriority{
[self.tableView layoutIfNeeded];
CGFloat h = self.tableView.contentSize.height;
return CGSizeMake(targetSize.width, h);
}
systemLayoutSizeFittingSize方法返回了当前view的宽高
注意:
- 如果tableView B上的cell高度是动态的,需要设置tableview的estimatedRowheight属性,且尽量小一些,如1。
- 如果tableView B上的cell高度是固定的,需要设置tableview的sectionHeaderHeight和sectionFooterHeight为0.0。
- tableView的代理方法heightForRow方法不实现,才会调用systemLayoutSizeFittingSize
网友评论