我正在尝试使用DiffableDataSource(在iOS 13中引入)实现UICollectionViewDropDelegate
。
UICollectionViewDragDelegate
,效果很好。collectionView.dropDelegate = self
func collectionView(_ collectionView: UICollectionView, performDropWith coordinator: UICollectionViewDropCoordinator)
(您甚至可以在方法为空的情况下尝试使用它。)]该应用将构建并运行,但是一旦您开始拖动单元格,该应用就会立即崩溃并显示以下消息:
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'当充当UICollectionView的dataSource时,必须通过UICollectionViewDiffableDataSource API来更新UICollectionView:请不要直接在UICollectionView上调用变异API。
所以似乎此方法试图直接修改UICollectionView(也许是在移动项目时移动单元格?),我不知道如何绕过此行为。
想法?
我正在尝试使用DiffableDataSource(在iOS 13中引入)实现UICollectionViewDropDelegate。我已经实现了UICollectionViewDragDelegate,效果很好。我设置了collectionView。...
这是一个很容易解决的问题。从UICollectionViewDropDelegate函数performDropWith开始。请注意,我只需要一个.move而不需要.copy,但是您只需要添加一个类似于以下reorderItems()方法的copyItems()方法即可: