我在 iOS14 处理 CollectionView 的方式中遇到了一个奇怪的行为。我注意到(从 iOS13.5 更改为 iOS14) UICollectionViewCells 的显示顺序是错误的。下面的图片是完全相同的代码(在 xCode12 中)的屏幕截图,唯一的区别是正确的是 iOS13.5 的构建和 iOS13.5 的 iPhone 11 模拟器,而错误的是 iOS13.5 iOS14 的构建和 iOS14 上带有 iPhone 11 的模拟器。其他一切(代码、设置等)都完全相同:
图 1,集合应该如何显示(在 iOS13.5 中正确):
如果用iOS14构建相同的代码,并在与iOS14相同的iPhone模拟器上运行,结果如下(不是顺序不对:是反了):
在数据源(这是一个带有标签的数组)中,一切都是正确的,并且 cellForItemAt 委托工作正常。
在 iOS14 中肯定有一些不同的处理方式。最后一个示例是另一个屏幕截图,其中框的大小不同(取决于标签的长度):
正确(为 iOS13.5 构建)是:
在为 iOS14 构建时会产生以下结果:
同样,代码完全相同,我只是为不同的 iOS 版本构建项目。在我看来,为 iOS14 修改集合的方式可能存在错误。欢迎任何帮助或想法。