代码之家  ›  专栏  ›  技术社区  ›  gngrwzrd

UICollectionView总是自动调整单元格大小。不使用委托返回的大小

  •  1
  • gngrwzrd  · 技术社区  · 6 年前

    最近升级到Xcode 11/iOS13。正在处理新的视图控制器。UICollectionView正在调用我的sizeForItemAtPath委托方法,但似乎collection视图总是基于约束选择自调整大小。但我不想!

    我试着将estimatedSize设置为1x1,只是为了解决这个问题。不起作用。我已经中断了所有委托/数据源方法,没有看到任何异常。

    我也遇到过这个( `systemLayoutSizeFittingSize` not called on iOS 13 但我真的不该这么做。

    我发现奇怪的是,任何现有的带有集合视图的XIB都是按照预期工作的,唯一的区别似乎是我用XCODE 11和XCODE 10创建Cys/Cuffiew视图。

    我还注意到XCODE11中的UICLoDebug视图元素包含了一个“内容视图”,但是XCODE 10 XIB没有内容视图。

    还有人经历过吗?

    0 回复  |  直到 6 年前
        1
  •  6
  •   matt    6 年前

    在接口生成器中有一个估计大小的设置-将其设置为“无”。

    enter image description here

    更改为无:

    enter image description here

        2
  •  0
  •   WTEDST    6 年前

    集合视图本身或其委托没有任何方法要求单元格提供其首选大小。另一方面,流程布局确实如此。 It is known 该流布局在内部检查单元格是否使用自动布局,如果单元格使用自动布局,则忽略委托提供的信息。

    通过子类化布局并返回false in,可以选择退出该行为 shouldInvalidateLayout(forPreferredLayoutAttributes:, withOriginalAttributes:)