1. 程式人生 > >計算在UITableView中的UICollectionView的高度(自適應)(iOS10可用)

計算在UITableView中的UICollectionView的高度(自適應)(iOS10可用)

經過測試,單純的寫好UICollectionView的約束,然後reloadData,並不能讓UICollectionView自適應,所以還要加點東西。

關鍵點:獲取UICollectionView的高度。
在tableViewCell中更新collectionView的資料來源,然後[collectionView reloadData];
然後利用collectionViewLayout.collectionViewContentSize.height來獲取collectionView的真正的contentSize.height,然後用這個height來更新collectionView的高度約束,

然後再用
1.UITableView的自己高度適應
tableView.estimatedRowHeight = 44;
tableView.rowHeight = UITableViewAutomaticDimension;

2.利用流行的自適應行高的第三方
比如 UITableView+FDTemplateLayoutCell 等

這樣如果還沒解決問題,
1.不要用layoutIfNeeded強行layout
2.在UICollectionView初始化時設定好frame,frame.width=約束中的寬度,否則collectionView會根據frame的設定自己新增約束,跟我們設定的寬度約束衝突掉,frame.height = UIScreen.mainScreen.bounds.size.height。
若frame.height = 0 , 則collectionView不會顯示出來。

適用於iOS10.