嵌入式 UITableView 未检测到滑动以删除行手势

Embedded UITableView does not detect a swipe to delete row gesture

我在 UICollectionView 中嵌入了一个 UITableView,collection 视图水平滚动,所以如果我在 table 视图行之一上尝试 'swipe to delete' collection 视图单元格,它显然只是滚动 collection 视图。想知道是否有解决方法,以便它可以检测 collection 视图单元格的 uitable 视图部分的滑动,而不是滑动 uicollection 自己看? UITableView 仅占 collection 视图单元格的大约四分之一。我正在使用 UIViewController。我的 collection 视图也启用了分页。

您可以尝试向每个集合单元格添加一个 UISwipeGestureRecognizer,然后在其目标操作中检查 (gestureRecognizer.state == UIGestureRecognizerStateEnded) 并添加您的代码。

您可以使用如here所述的方法实现命中测试,使 UICollectionView 在单元格的框架内滚动时不会获取手势事件

但是恕我直言,您不应该尝试破坏默认行为,而应该考虑改变您的 UI...

尝试以下两个选项之一:

您只需要弄清楚如何 identify/retrieve 两个手势识别器(提示:浏览 gestureRecognizers 属性 找到一些 PanGestureRecognizers


而且你绝对应该改进那个笨重的设计。