将删除滑动手势从UIPageViewController传递到UITableView

时间:2017-10-12 02:33:34

标签: ios iphone swift uitableview

我在UITableView内有一个UIPageViewController,并且刷卡事件似乎没有传递给UITableView

我能够禁用UIPageViewController的边缘弹跳,但我仍然没有找到一种方法可以在UITableView中始终如一地启用滑动删除功能。

In this sample, it takes multiple swipes to get the delete button to show up. The gesture is extremely finicky on an actual device

在此示例中,需要多次滑动才能显示删除按钮。在实际设备上手势非常挑剔

右侧页面后面没有其他页面,因此UIPageViewController没有理由需要刷卡。

viewDidLoad我有:

for view in self.pageViewController.view.subviews {
    if let scrollView = view as? UIScrollView {
        scrollView.delegate = self
    }
}

下面我有:

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    return true
}

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
    print(gestureRecognizer)
    if gestureRecognizer is UISwipeGestureRecognizer {
        return false
    }else{
        return true
    }
}

有很多相关的帖子有不同的答案,但没有一个适用于我的用例。

1 个答案:

答案 0 :(得分:-1)

您可以使用datasource通过禁用UIPageViewController的滑动,只需使用setViewControllers:direction:animated:completion方法提供内容。希望轻扫tableView即可。