我有这个扩展可以滚动到第一个 collectionView 单元格:
extension UICollectionView {
func scrollToFirst(inSection: Int = 0, animated: Bool = false) {
if let _ = dataSource?.collectionView(self, cellForItemAt: IndexPath(row: 0, section: inSection)) { // MARK: Checks if collectionView is filled
scrollToItem(at: IndexPath(row: 0, section: inSection), at: .right, animated: animated)
}
}
}
它可以在 iOS -18 上运行,但在 iOS 18.0 上会崩溃。
您的
dataSource
不知何故尚未加载。虽然单元格的实例可用,但我相信 section
尚未准备好使用,您可能需要打印 numberOfSections
的部分。它可能会导致以下异常:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“尝试将集合视图滚动到越界项目
因此,最好在滚动之前检查索引是否有效:
if self.numberOfSections > inSection {
//TODO: - other stuff
}