计算在UITableView中的UICollectionView的高度(自适应)(iOS10可用)

本文介绍如何使UICollectionView在UITableViewCell中自适应布局。通过更新数据源并重新加载数据,结合使用estimatedRowHeight和rowHeight属性,再调整collectionView的高度约束,实现UICollectionView内容大小的自动适配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经过测试,单纯的写好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.

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值