ios – 访问UIPageViewController手势识别器以启用滑动删除

我试图与UIPageViewController的分页机制一起滑动删除UITableView工作.我想设置UIPageViewController的手势识别器,以便我可以更改它的委托并实现:

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
    if let _ = touch.view as? UITableViewCell {
        return false
    }

    return true
}

我的问题是我找不到UIP​​ageViewController的手势识别器.我试过看:

myPageViewController.gestureRecognizers
myPageViewController.view.gestureRecognizers

myPageContentViewController.gestureRecognizers
myPageContentViewController.view.gestureRecognizers

它在哪里和/或是否有更好的解决方案来实现UITableView的滑动来删除UIPageViewController中的功能?

最佳答案 手势附加到其scrollView,而这个手势不是公共属性.无论如何,我使用此扩展来获取scrollView:

extension UIPageViewController {

    public var scrollView: UIScrollView? {
        for view in self.view.subviews {
            if let scrollView = view as? UIScrollView {
                return scrollView
            }
        }
        return nil
    }

}

然后你想要它的panGesture:

pageController.scrollView?.panGestureRecognizer
点赞