是否有一种优雅而简短的方法可以在两个单元格之间进行滑动(假设我们有两个单元格所需的NSIndexPath)?
答案 0 :(得分:2)
我在这里看到的可能性很少,有你提供的信息。
1)您可以使用标准的UICollectionView方法:- moveItemAtIndexPath:toIndexPath:
,但必须先更新数据源。例如,假设您已经更新了数据源(请注意,此示例代码在移动项目之后确定索引更改之前是无用的。):
collectionView.performBatchUpdates({ () -> Void in
collectionView.moveItemAtIndexPath(firstIndexPath,toIndexPath:secondIndexPath)
//note: proper indexes might be changed after moveItem.. method. Play with it and you'll find the proper one for your item.
collectionView.moveItemAtIndexPath(secondIndexPath,toIndexPath:firstIndexPath)
}, completion: { (finish) -> Void in
})
2)如果您使用自定义布局
,则可以重新计算布局 3)您可以使用reloadData
或reloadItemsAtIndexPaths
重新加载收藏视图。例如:
var dataSourceArray = [1,2,3,4,5]
// some event occurred -> dataSourceArray changed
dataSourceArray = [1,2,5,4,3]
// call collectionView.reloadData() or reloadItemsAtIndexPaths(_:).
如果您使用第一种或第三种方式,则在这两种情况下数据源都必须是最新的。