Hi,你好代碼??锹引。你見到這便文章,說明你可能遇見了唆香,tableViewCell 里面潛逃collectionView 嫌变,tableVIewCell 高度需要適配問題。
那么躬它,先看效果
我面對(duì)的場(chǎng)景是腾啥,當(dāng)前頁面是個(gè)tableCell,cell 里面要在下一頁面選擇完內(nèi)容后后冯吓,加載出collectionView碑宴。
操作步驟,
1桑谍, 在設(shè)置完collectionView 數(shù)據(jù)源后延柠, 調(diào)用collectionView的 - (void)reloadData 方法
[self.myCollectionView reloadData];
// 為了解決,collectionView rload后锣披,
// 不知道更新布局問題贞间, 這個(gè)方法,在reload前后調(diào)用都可以雹仿,我在reload后調(diào)用
[self layoutIfNeeded];
}
2增热,然后在cell 里面要實(shí)現(xiàn):
- (void)layoutSubviews {
[super layoutSubviews];
// 這里設(shè)置 cell的cotentView 的frame ,
// 前提是先獲取 collectionView 的視圖的高度胧辽。
CGFloat height = self.myCollectionView.collectionViewLayout.collectionViewContentSize.height;
self.myCollectionView.frame = CGRectMake(self.myCollectionView.wt_x, self.myCollectionView.wt_y, self.myCollectionView.wt_width, collectionContentSizeHeight);
// 默認(rèn)cell 的高度 44
CGFloat contentHeight = 44;
if (collectionContentSizeHeight != 0) {
// 算出峻仇,collectionView 底部 + 距離底部距離。
contentHeight = self.myCollectionView.wt_bottom + 12;
}
self.contentView.frame = CGRectMake(0, 0, self.contentView.wt_width, contentHeight);
}
3邑商,更新完cell 的contentView 的frame 后摄咆,你就可以在table的代理中更新,cell 的高度了人断。