UICollectionView单元格从左到右显示异常,中间有间隙如何修复?
UICollectionView单元格横向间隙异常修复方案
问题原因
你同时启用了自动估算单元格尺寸和通过代理方法返回固定单元格尺寸,这两个设置会产生冲突:UICollectionViewFlowLayout.automaticSize会让系统尝试自动计算单元格大小,覆盖你在代理方法中返回的固定尺寸,最终导致布局计算错误,出现异常间隙。
修复步骤
直接移除自动估算尺寸的设置即可,保留代理方法返回固定尺寸的逻辑:
修改后的初始化代码:
collectionView_.register(UINib.init(nibName: String(describing: GoalSelectionCollectionViewCell.self), bundle: nil), forCellWithReuseIdentifier: reuseIdentifier) collectionView_.allowsMultipleSelection = true // 移除冲突的自动尺寸设置代码 // if let flowLayout = collectionView_?.collectionViewLayout as? UICollectionViewFlowLayout { // flowLayout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize // }
补充说明
如果后续需要使用动态单元格尺寸(比如根据内容自适应),再启用estimatedItemSize,同时不需要实现sizeForItemAt代理方法;如果是固定尺寸,就只保留代理方法的固定尺寸返回,不要开启自动估算。
内容的提问来源于stack exchange,提问作者Jafar Mohammed
相关产品推荐
相关产品推荐

