如果UICollectionView中同时存在两种Cell,一种是ACell需要自动估计item的大小,另一种是Bell需要固定大小为CGSize(300,200),可以按照以下步骤进行编写:\n\n1. 首先创建一个UICollectionViewFlowLayout的子类,命名为CustomFlowLayout。\n\n2. 在CustomFlowLayout中重写estimatedItemSize属性,将其设置为UICollectionViewFlowLayout.automaticSize。代码如下:\n\nswift\nclass CustomFlowLayout: UICollectionViewFlowLayout {\n override init() {\n super.init()\n estimatedItemSize = UICollectionViewFlowLayout.automaticSize\n }\n \n required init?(coder aDecoder: NSCoder) {\n fatalError("init(coder:) has not been implemented")\n }\n}\n\n\n3. 在UICollectionView的代理方法中,判断indexPath对应的cell类型,如果是ACell,就使用CustomFlowLayout作为collectionView的layout。代码如下:\n\nswift\nfunc collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {\n if indexPath.item == 0 {\n collectionView.collectionViewLayout = CustomFlowLayout()\n return CGSize(width: collectionView.frame.width, height: 200) // 设置ACell的高度为200,宽度为collectionView的宽度\n } else {\n return CGSize(width: 300, height: 200) // 设置Bell的固定大小为CGSize(300,200)\n }\n}\n\n\n这样就可以实现同时存在两种不同大小的Cell,并分别设置它们的布局要求。

iOS UICollectionView: 实现自动计算大小和固定大小两种Cell - 代码示例

原文地址: https://www.cveoy.top/t/topic/qyr2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录