在pageViewController内的tableView上滑动以删除

问题描述 投票:9回答:3

我在tableView内部有一个pageViewController,当在一个单元格上滑动以显示删除单元格的选项时,只有在某些情况下才会识别出手势,比如你快速而且积极地滑动。

我想这会发生,因为它不确定滑动手势是针对pageView还是tableView。有没有办法专门确定滑动手势发生的位置,以便能够顺利显示删除按钮?

ios swift tableview uipageviewcontroller tableviewcell
3个回答
6
投票

我有同样的问题。我找到了一个运作良好的解决方案。

把它放在你的UIPageViewControllerviewDidLoad功能中。

if let myView = view?.subviews.first as? UIScrollView {
    myView.canCancelContentTouches = false
}

PageViewControllers有一个自动生成的子视图来处理手势。我们可以阻止这些子视图取消内容触摸。 tableview将能够捕获删除按钮的滑动,同时仍然可以解释将tableview的手势要求作为页面滑动失败的滑动。如果您按住并轻扫或“猛烈地”滑动,则会显示删除按钮。


0
投票

您也可以在tableView本身上将delaysContentTouches设置为false。此解决方案适用于我的集合视图的UISlider元素。

请参阅下面的Swift 4.0代码:

yourTableView.delaysContentTouches = false

0
投票

通过将UIScrollViewpanGestureRecognizerdelegate重新分配到我的班级并在检测到从右到左的平底锅时忽略原始代表,我找到了一个有效的解决方案。我使用方法调整。

请检查我的示例项目:https://github.com/kambala-decapitator/SwipeToDeleteInsidePageVC

© www.soinside.com 2019 - 2024. All rights reserved.