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

Access UIPageViewController gesture recognizer(s) to enable swipe to delete

我正在尝试将 UITableView 上的滑动删除与 UIPageViewController 的分页机制结合使用。我想设置 UIPageViewController 的手势识别器,这样我就可以更改它的委托并实现:

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

    return true
}

我的问题是找不到 UIPageViewController 的手势识别器。我试过查看:

myPageViewController.gestureRecognizers
myPageViewController.view.gestureRecognizers

myPageContentViewController.gestureRecognizers
myPageContentViewController.view.gestureRecognizers

它在哪里 and/or 是否有更好的解决方案来实现 UITableViewUIPageViewController 中的滑动删除功能?

手势附加到它的scrollView,这个不是public属性。无论如何,我使用这个扩展来获取 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