You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:25:44