- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的水平 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 :
最佳答案
在您程序的某处,有人可能正在调用 scrollToItems(at:,scrollPosition:)
。他们要么不知道集合是空的,只是将 (row:0, item:0)
作为索引路径传递,而不是完全跳过滚动调用。或者他们认为您的收藏中至少包含一项。
为了进一步诊断问题,我会在异常上设置断点或在 UIScrollView
函数上设置断点并查看回溯以查看调用者是谁。
您还想检查您的数据源,以确保它在滚动发生时已使用正确数量的项目进行了更新。
但是,通过回溯找出导致 ScrollView 滚动的原因或原因将是很好的第一步。
关于swift - 由于滚动刷新时空 Collection View 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69744921/
我是一名优秀的程序员,十分优秀!