计算在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.

你可能感兴趣的:(原创,笔记,Objective-C)