Swift 在重新加载数据中错误地调整了收集单元格的大小
我不知道为什么,但我的collectionView的单元格在重新加载数据后会自动错误地调整大小 在第一次初始化之后,然后在重新加载数据之后: 我正在使用Swift 在重新加载数据中错误地调整了收集单元格的大小,swift,uicollectionview,swift5,Swift,Uicollectionview,Swift5,我不知道为什么,但我的collectionView的单元格在重新加载数据后会自动错误地调整大小 在第一次初始化之后,然后在重新加载数据之后: 我正在使用UICollectionViewDelegateFlowLayout定义单元格的大小,但它不考虑它: func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollection
UICollectionViewDelegateFlowLayout
定义单元格的大小,但它不考虑它:
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize {
let paddingSpace = sectionInsets.left * (2 + 1)
let availableWidth = view.frame.width - paddingSpace
let widthPerItem = availableWidth / 2
return CGSize(width: widthPerItem, height: widthPerItem)
}
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
insetForSectionAt section: Int) -> UIEdgeInsets {
return sectionInsets
}
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return sectionInsets.left
}
当在cellForItemAt
中执行时,单元格大小正确,阴影在此函数中创建,宽度正确
最后一件事是,只有宽度调整,高度保持在我想要的
有人知道为什么在重新加载数据后宽度的大小被错误地调整了吗?我在扩展UICollectionViewDelegateFlowLayout时遇到了类似的问题,结果是在情节提要(大小检查器)中将collectionView的估计大小设置为“无”解决了这个问题 如Xcode 11发行说明所述: UICollectionView中的单元格现在可以通过自动布局自行调整大小 画布中的受约束视图。选择现有用户的行为 集合视图,为集合视图的 估计大小,并根据大小“自动”计算单元格大小 检查员。 如果在iOS 13之前部署,则可以激活自调整大小集合 在过程中通过调用performBatchUpdates(u:completion:)查看单元格 viewDidLoad()。(45617083)
因此,新创建的collectionViews将属性“Estimated Size”设置为“Automatic”,并根据其子视图维度计算单元大小,从而忽略UICollectionViewDelegateFlowLayout扩展方法,即使调用了这些方法 我在扩展UICollectionViewDelegateFlowLayout时遇到了类似的问题,结果是在情节提要(大小检查器)中将collectionView的估计大小设置为“无”解决了这个问题 如Xcode 11发行说明所述: UICollectionView中的单元格现在可以通过自动布局自行调整大小 画布中的受约束视图。选择现有用户的行为 集合视图,为集合视图的 估计大小,并根据大小“自动”计算单元格大小 检查员。 如果在iOS 13之前部署,则可以激活自调整大小集合 在过程中通过调用performBatchUpdates(u:completion:)查看单元格 viewDidLoad()。(45617083)
因此,新创建的collectionViews将属性“Estimated Size”设置为“Automatic”,并根据其子视图维度计算单元大小,从而忽略UICollectionViewDelegateFlowLayout扩展方法,即使调用了这些方法 如果有明显的差异,也值得分享您的
cellForItemAt
。另外,您是否打算使用let paddingSpace=sectionInsets.left*3
如果存在明显差异,也值得分享您的cellForItemAt
。另外,您的意思是使用let paddingSpace=sectionInsets.left*3
谢谢!!正是故事板中collectionView中的设置覆盖了所有内容!!正是故事板中collectionView中的设置覆盖了所有其他内容