嵌入式 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...
尝试以下两个选项之一:
- 看看
require(toFail otherGestureRecognizer: UIGestureRecognizer)
。创建(或填充)单元格时,使用此方法将滑动手势添加到集合视图平移手势。
- 试着看看
shouldRequireFailure(of: otherGestureRecognizer)
。当 otherGestureRecognizer
实际上是滑动删除行手势时,子类 UICollectionView
并将此方法重写为 return true。
您只需要弄清楚如何 identify/retrieve 两个手势识别器(提示:浏览 gestureRecognizers
属性 找到一些 PanGestureRecognizers
)
而且你绝对应该改进那个笨重的设计。
我在 UICollectionView 中嵌入了一个 UITableView,collection 视图水平滚动,所以如果我在 table 视图行之一上尝试 'swipe to delete' collection 视图单元格,它显然只是滚动 collection 视图。想知道是否有解决方法,以便它可以检测 collection 视图单元格的 uitable 视图部分的滑动,而不是滑动 uicollection 自己看? UITableView 仅占 collection 视图单元格的大约四分之一。我正在使用 UIViewController。我的 collection 视图也启用了分页。
您可以尝试向每个集合单元格添加一个 UISwipeGestureRecognizer
,然后在其目标操作中检查 (gestureRecognizer.state == UIGestureRecognizerStateEnded)
并添加您的代码。
您可以使用如here所述的方法实现命中测试,使 UICollectionView 在单元格的框架内滚动时不会获取手势事件
但是恕我直言,您不应该尝试破坏默认行为,而应该考虑改变您的 UI...
尝试以下两个选项之一:
- 看看
require(toFail otherGestureRecognizer: UIGestureRecognizer)
。创建(或填充)单元格时,使用此方法将滑动手势添加到集合视图平移手势。 - 试着看看
shouldRequireFailure(of: otherGestureRecognizer)
。当otherGestureRecognizer
实际上是滑动删除行手势时,子类UICollectionView
并将此方法重写为 return true。
您只需要弄清楚如何 identify/retrieve 两个手势识别器(提示:浏览 gestureRecognizers
属性 找到一些 PanGestureRecognizers
)
而且你绝对应该改进那个笨重的设计。