ios - 错误:UICollectionView 接收到具有 Swift 中不存在的索引路径的单元格的布局属性
问题描述
我“ https://www.raywenderlich.com/392-uicollectionview-custom-layout-tutorial-pinterest ”来创建自定义 UICollectionView。(调整单元格高度)
如果我向上滚动,单元格将继续添加,并从上到下滚动以刷新。
当您运行您的应用程序并最初培养 Cells 时,没有问题。但是,刷新或重新排序单元格数量时总是会出错。
错误 :
*** -[UICollectionViewData validateLayoutInRect:] 中的断言失败,/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3698.93.8/UICollectionViewData.m:447
*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“UICollectionView 收到了具有不存在索引路径的单元格的布局属性:
因此,“ iOS 10 bug: UICollectionView received layout attributes for a cell with a index path that does not exist ” 并试图解决该错误。
在下面的行
self.artCollectionView.reloadData ()
我尝试添加
self.artCollectionView.collectionViewLayout.invalidateLayout ()
但没有解决。
另外,我不知道在哪里运行
cache.removeAll ()
在准备()部分。(PinterestLayout.swift中有一个prepare()函数)
解决错误的正确方法是什么?
解决方案
应该有prepare
功能,PinterestLayout.swift
因为它是唯一用于自定义collectionView
.
在第 76 行,在PinterestLayout.swift文件中。
尝试
override public func prepare() {
cache.removeAll()
if cache.isEmpty {
.....
}
}
推荐阅读
- docker - Scrapy-redis 无法连接到 Docker 中的服务器
- ios - 为什么我的 imageview 的“到安全区域的尾随”约束没有覆盖整个宽度。(附图片)
- react-admin - React-Admin:实现自定义请求类型
- python-asyncio - 我无法在 HTTP2 实现中更新流控制窗口,因此客户端无法发送其余数据
- swift - 如何快速修复导航栏下的视图
- c# - 在事务中使用 C# 在 Azure SQL 中创建服务器登录名和数据库用户
- javascript - 什么是 JS 中的后向支持?如何更换它?
- java - 使用来自 Rest API 的值返回键
- r - 过渡期间的 gganimate 舍入值
- google-app-engine - 用于静态 html 网站的 Google App Engine 的正确 app.yaml 处理程序配置