将删除滑动手势从 UIPageViewController 传递给 UITableView
Posted
技术标签:
【中文标题】将删除滑动手势从 UIPageViewController 传递给 UITableView【英文标题】:Pass delete swipe gesture from UIPageViewController to UITableView 【发布时间】:2017-10-12 02:33:33 【问题描述】:我在UIPageViewController
中有一个UITableView
,滑动事件似乎没有传递给UITableView
。
我能够为我的UIPageViewController
禁用边缘弹跳,但我仍然没有找到一种方法来始终在我的UITableView
中启用滑动删除。
在此示例中,需要多次滑动才能显示删除按钮。这个手势在实际设备上非常挑剔
右侧页面之后没有其他页面,因此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
有很多相关的帖子有不同的答案,但没有一个适合我的用例。
【问题讨论】:
这更像是一个替代方案,而不是我的问题的解决方案,但我只是使用了 MGSwipeTableCell。这很容易实现。 github.com/MortimerGoro/MGSwipeTableCell 【参考方案1】:您可以通过not使用datasource
来禁用UIPageViewController的滑动,只需使用setViewControllers:direction:animated:completion
方法提供内容。希望tableView的滑动可以工作。
【讨论】:
我必须显示多个页面,所以我不确定如何在不完全拆开UIPageViewController
的情况下实现这一点以上是关于将删除滑动手势从 UIPageViewController 传递给 UITableView的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 移动到另一个场景时如何从场景中删除滑动手势?