Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在重新加载数据中错误地调整了收集单元格的大小_Swift_Uicollectionview_Swift5 - Fatal编程技术网

Swift 在重新加载数据中错误地调整了收集单元格的大小

Swift 在重新加载数据中错误地调整了收集单元格的大小,swift,uicollectionview,swift5,Swift,Uicollectionview,Swift5,我不知道为什么,但我的collectionView的单元格在重新加载数据后会自动错误地调整大小 在第一次初始化之后,然后在重新加载数据之后: 我正在使用UICollectionViewDelegateFlowLayout定义单元格的大小,但它不考虑它: func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollection

我不知道为什么,但我的collectionView的单元格在重新加载数据后会自动错误地调整大小

在第一次初始化之后,然后在重新加载数据之后:

我正在使用
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中的设置覆盖了所有其他内容