gpt4 book ai didi

swift - 由于滚动刷新时空 Collection View 崩溃

转载 作者:行者123 更新时间:2023-12-05 03:35:55 24 4
gpt4 key购买 nike

我的水平 Collection View (仅当它有 0 个单元格时)在尝试刷新父 View 时导致崩溃。当 Collection View 有 0 个项目(即“shownStations”)时, Collection View 将被隐藏。刷新父 View 时,会进行 API 调用以获取 Collection View 的任何可用项。似乎与错误消息(下方)相关的 Collection View 代码如下:

        if self.shownStations.isEmpty {  
self.stationCollectionView?.frame = CGRect(x: 0, y: 0, width: 0, height: 0)
} else {
self.stationCollectionView?.frame = CGRect(x: 0, y: 0, width: 414, height: 150)
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if !self.hiddenStations.isEmpty {
return shownStations.count + 1
} else {
return shownStations.count
}
}

错误信息:*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“当第 0 节中只有 0 个项目时,试图将 Collection View 滚动到越界项目 (0)。 Collection View : ;层 = ; contentOffset: {0, 0};内容大小:{0, 0}; adjustedContentInset: {0, 0, 0, 0};布局: ;数据源: >。'

最佳答案

在您程序的某处,有人可能正在调用 scrollToItems(at:,scrollPosition:)。他们要么不知道集合是空的,只是将 (row:0, item:0) 作为索引路径传递,而不是完全跳过滚动调用。或者他们认为您的收藏中至少包含一项。

为了进一步诊断问题,我会在异常上设置断点或在 UIScrollView 函数上设置断点并查看回溯以查看调用者是谁。

您还想检查您的数据源,以确保它在滚动发生时已使用正确数量的项目进行了更新。

但是,通过回溯找出导致 ScrollView 滚动的原因或原因将是很好的第一步。

关于swift - 由于滚动刷新时空 Collection View 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69744921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com