有没有一种方法可以返回由UICollectionViewDelegateFlowLayout方法中的sizeForItemAt约束计算的大小

时间:2019-08-29 14:21:52

标签: ios swift uicollectionview uicollectionviewlayout uicollectionviewdelegateflowlayout

我正在重写UICollectionViewDelegateFlowLayout的sizeForItemAt方法。我只想在特定部分中计算大小,然后回退到其他部分的默认流布局行为。

我不完全确定该怎么做,因为我没有子类化,所以我不能只使用超类实现。

朝正确方向的一点将不胜感激。

编辑

我想使用systemLayoutSizeFitting,如下所示,但是调用sizeForItemAt时并没有创建单元格。

guard indexPath.section == sectionNumber else {
  // This always returns nil as the cell hasn't been created when sizeForItemAt runs
  guard let cell = collectionView.cellForItem(at: indexPath) else {
    return .zero
  }

  return cell.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
}

return someCalculatedCGSize

我尝试创建自己的布局子类,但是遇到了同样的问题,我有两个全宽单元,自动布局为其提供了约束,然后是一个网格布局,在此之下我可以手动计算尺寸。因此,我想回过头来限制提供前两个单元格的大小。

0 个答案:

没有答案