如何解决CollectionView 的单元格内的 CollectionView 导致单元格的创建被混合
我有一个集合视图(父),它有多种类型的单元格,如网格、饼图和表格(它本身就是一个集合视图)
现在当我有 2 个表(使用集合视图在内部创建)时,我的问题就出现了,分别有 5 行 2 列和 833 行 5 列。最初,当这 2 个表在屏幕外并且我滚动时,应用会因某些 Index out of range
错误而崩溃。
我尝试添加一些调试语句并能够发现这种意外行为:
Cell Creation for Index: [0,0] Rows: 5 Columns: 2 Identifier: 0x7fb227153000
Cell Creation for Index: [0,1] Rows: 5 Columns: 2 Identifier: 0x7fb227153000
Cell Creation for Index: [0,0] Rows: 5 Columns: 2 Identifier: 0x7fb2278c8c00
Cell Creation for Index: [0,1] Rows: 5 Columns: 2 Identifier: 0x7fb2278c8c00
Cell Creation for Index: [0,0] Rows: 833 Columns: 5 Identifier: 0x7fb228940000
Cell Creation for Index: [0,1] Rows: 833 Columns: 5 Identifier: 0x7fb228940000
Cell Creation for Index: [0,2] Rows: 833 Columns: 5 Identifier: 0x7fb228940000
Cell Creation for Index: [0,3] Rows: 833 Columns: 5 Identifier: 0x7fb228940000
Cell Creation for Index: [0,4] Rows: 833 Columns: 5 Identifier: 0x7fb228940000
Cell Creation for Index: [0,0] Rows: 5 Columns: 2 Identifier: 0x7fb228979000
Cell Creation for Index: [0,1] Rows: 5 Columns: 2 Identifier: 0x7fb228979000
Cell Creation for Index: [1,0] Rows: 5 Columns: 2 Identifier: 0x7fb228979000
Cell Creation for Index: [1,0] Rows: 833 Columns: 5 Identifier: 0x7fb228940000
Cell Creation for Index: [1,1] Rows: 833 Columns: 5 Identifier: 0x7fb228940000
Cell Creation for Index: [1,2] Rows: 833 Columns: 5 Identifier: 0x7fb228940000
Fatal error: Index out of range: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-1103.2.25.8/swift/stdlib/public/core/ContiguousArrayBuffer.swift,line 444
2021-02-16 13:52:01.200283+0530 <App_Name>[24302:1700870] Fatal error: Index out of range: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-1103.2.25.8/swift/stdlib/public/core/ContiguousArrayBuffer.swift,line 444
标识符是我们使用 debugDescription
获得的集合视图 ID。我还注意到,对于同一个表,比如 一个有 5 行,标识符从 0x7fb227153000
更改为 0x7fb2278c8c00
到后来的 0x7fb228979000
我认为对于具有 5 列的 collectionView 来说它不应该崩溃,因为索引 [1,2] 应该在 5 列内就足够了。但是当索引 [1,2] 用于 2 列 collectionView 时它应该崩溃(因为我们只有 0 和 1 索引)。所以我猜这就是混合细胞的创造
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。