在 UICollectionView 中滑动单元格 - Swift
Posted
技术标签:
【中文标题】在 UICollectionView 中滑动单元格 - Swift【英文标题】:Swipe Cell in UICollectionView - Swift 【发布时间】:2015-07-26 10:09:49 【问题描述】:是否有一种优雅而简短的方法可以在两个单元格之间快速滑动(假设我们有两个单元格的所需 NSIndexPath)?
【问题讨论】:
滑动是什么意思?在集合视图的情况下,我想到了许多对象的集合,而不仅仅是 2。也许您正在寻找或谈论 UIScrollView?多描述一下你的布局。 我的意思是用另一个单元格替换一个单元格,只是将一个单元格位置更改为另一个单元格位置,反之亦然。 【参考方案1】:根据您提供的信息,我认为这里的可能性很小。
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(_:).
如果您将使用第一种或第三种方式,在这两种情况下,数据源都必须是最新的。
【讨论】:
以上是关于在 UICollectionView 中滑动单元格 - Swift的主要内容,如果未能解决你的问题,请参考以下文章
使用uicollectionview 实现单元格滑动吸附效果
如何向 UICollectionView 动态添加新单元格?