首页 > 解决方案 > UICollectionView 总是自动调整单元格大小。不使用委托返回的尺寸

问题描述

最近升级到 Xcode 11 / iOS13。使用新的视图控制器。UICollectionView 正在调用我的 sizeForItemAtPath 委托方法,但似乎集合视图总是根据约束选择自我调整大小。但我不想要它!

我尝试将estimatedSize 设置为1x1 只是为了尝试解决这个问题。没用。我已经在所有委托/数据源方法上设置了断点,并且没有看到任何异常。

我也遇到了这个(在 iOS 13 上没有调用 `systemLayoutSizeFittingSize`),也许我的问题是相关的?我可以通过覆盖该链接中的 systemFittingSize 方法来解决这个问题——但我真的不应该这样做。

我发现奇怪的是,任何带有集合视图的现有 xib 都按预期工作 - 唯一的区别似乎是我使用 Xcode 11 VS Xcode 10 创建单元格/集合视图。

我还注意到 Xcode11 中的 UICollectionViewCell 元素包含“内容视图”-但 Xcode 10 xibs 没有内容视图。

还有人经历过这个吗?

标签: iosxcodeuicollectionviewuicollectionviewcellxcode11

解决方案


界面生成器中有一个估计大小的设置 - 将其设置为无。

在此处输入图像描述

更改为无:

在此处输入图像描述


推荐阅读