处理 UICollectionView 单元格上的滑动:在 UICollectionView 或每个单元格上实现处理程序?

Posted

技术标签:

【中文标题】处理 UICollectionView 单元格上的滑动:在 UICollectionView 或每个单元格上实现处理程序?【英文标题】:Handle swipes on UICollectionView cells: implement handler on UICollectionView or on each cell? 【发布时间】:2016-09-02 10:48:42 【问题描述】:

目标是处理 UICollectionView 单元格上的滑动。每次向左滑动都应该为发生滑动的单元格显示一个删除选项。

当前实现将滑动手势识别器附加到 UICollectionView 然后检查单元格,如下所示:

let swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(cellSwiped))
swipeGesture.direction = .Left
collectionView.addGestureRecognizer(swipeGesture)

func cellSwiped(gestureRecognizer : UISwipeGestureRecognizer) 
    let point = gestureRecognizer.locationInView(collectionView)
    if let indexPath = collectionView.indexPathForItemAtPoint(point) 
        // Do stuff
    

另一种方法是自定义 UICollectionViewCell 以处理滑动。

各自的优缺点是什么?两者都一样好吗?

【问题讨论】:

【参考方案1】:

你应该在每个单元格中添加手势,它会让你可以轻松控制,它会让你的代码干净

【讨论】:

以上是关于处理 UICollectionView 单元格上的滑动:在 UICollectionView 或每个单元格上实现处理程序?的主要内容,如果未能解决你的问题,请参考以下文章

在滚动期间点击时,UICollectionView 不再识别单元格上的点击?

UICollectionView 在单元格上拖动手指以选择它们

UICollectionView 标头仅在第一个单元格上调用一次

在单元格上设置角半径会破坏 UICollectionView 的性能

如何将uicollectionview单元格合并到tableview第一个单元格上

完成加载后,在 UICollectionView 中的第一个单元格上调用函数