使用場景
某個tableView A的某個cell A上有一個tableView B宅此,tableView B上的cell高度是動態(tài)懂鸵,要求tableView A的cell A的高度要和tableView B的高度一樣。
效果圖
0.table嵌套table.jpg
cell 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方法返回了當(dāng)前view的寬高
注意:
- 如果tableView B上的cell高度是動態(tài)的痪宰,需要設(shè)置tableview的estimatedRowheight屬性叼架,且盡量小一些,如1衣撬。
- 如果tableView B上的cell高度是固定的乖订,需要設(shè)置tableview的sectionHeaderHeight和sectionFooterHeight為0.0。
- tableView的代理方法heightForRow方法不實現(xiàn)具练,才會調(diào)用systemLayoutSizeFittingSize
(Cell潛逃tableView還是有問題的乍构,嵌套collectionView沒問題)