仅限 iPhone 13 Pro 的 UICollectionView 单元格未显示在中间

CollectionViewCells not displaying in middle on iPhone 13 Pro only

显示用户相机胶卷的 collection 视图出现问题,特别是在 iPhone 13 Pro 上。这包括模拟器和真实设备。

单元格的布局就像 collection 视图中缺少一列一样。此错误不会出现在之前的型号上,例如 12 Pro Max 或 SE 2nd gen。

我使用的布局是“UICollectionViewFlowLayout”或“Flow”布局。我想知道这是 iOS 15 或 Xcode 13 的问题,还是在其他地方做了一些改变。

以下是展示该问题的一些屏幕截图:

iPhone 13 临:

iPhone 12 专业最大:

相同的代码呈现这两个输出...

是什么导致了这个问题或去哪里寻找?

更新:

宽度计算正确:

let numberOfColumn = CGFloat(configure.numberOfColumn)
let width = (view.frame.size.width - (5 * (numberOfColumn - 1))) / numberOfColumn

正如您将在下面的 ss 中看到的,当我 select 一个单元格(橙色边框)是正常大小时,单元格大小似乎不是问题。当我点击中间的空白 space 时,它什么也没做,那里没有单元格。

原来是单元格大小小了一点!

let count = CGFloat(configure.numberOfColumn) // value is always 3
let width = floor((view.frame.size.width - (5 * (count - 1))) / count)

在宽度上调用 floor() 解决了这个问题,现在 3 个单元格可以适应 13 Pro 和其他型号的屏幕宽度。