仅在 iPhone 13 Pro 的中间不显示集合视图单元格

Posted

技术标签:

【中文标题】仅在 iPhone 13 Pro 的中间不显示集合视图单元格【英文标题】:CollectionViewCells not displaying in middle on iPhone 13 Pro only 【发布时间】:2021-12-01 12:42:59 【问题描述】:

在 iPhone 13 Pro 上专门出现了显示用户相机胶卷的收藏视图的问题。这包括模拟器和真实设备。

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

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

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

iPhone 13 专业版:

iPhone 12 Pro Max:

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

什么可能导致这个问题或去哪里寻找?

更新:

宽度计算正确:

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

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

【问题讨论】:

调整单元格大小。 您还需要调整中心间隙。考虑将它用于不同的设备。 你有静态宽度吗?它应该类似于 (UIScreen.main.bounds.width / numberOfHorizo​​ntalItems) - 间距 - (leading + trailing)/numberOfHorizo​​ntalItems 我更新了问题,似乎不是单元格大小问题,更像是索引或布局问题。 有什么想法吗?如果列是 const 3,则为数字。 【参考方案1】:

所以是单元格大小缩小了一小部分!

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

在宽度上调用 floor() 已修复问题,现在 13 Pro 和其他型号的屏幕宽度可以容纳 3 个单元格。

【讨论】:

以上是关于仅在 iPhone 13 Pro 的中间不显示集合视图单元格的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 13 Pro曝光,120Hz高刷来了

对于 iPhone - 但不是 iOS 模拟器 - UIToolbar UIBarButtonItem 将仅在长按时突出显示,而不是在点击时突出显示

准备入手iPhone13,纠结选择买13 Pro Max还是13 Pro?

苹果13pro浏览器消息怎么关闭

库克的赚钱主意,停产iPhone13 Pro迫使用户买更贵的iPhone14

iPhone 13(Pro、Max、Mini)和旧款 iPhone 的所有媒体查询