UIPageViewController 内的 UITableViewController,如何防止对角拖动
Posted
技术标签:
【中文标题】UIPageViewController 内的 UITableViewController,如何防止对角拖动【英文标题】:UITableViewController inside UIPageViewController, How to prevent diagonal dragging 【发布时间】:2014-12-30 03:57:40 【问题描述】:我有一个 UIPageViewController 可以水平滚动 UITableViewController 类的不同实例。
我需要检测用户拖动的方向并锁定另一个方向,因为此刻可以向任意方向滚动,即水平方向的uipageview和垂直方向的uitableview同时滚动.
我正在寻找像天气应用这样的行为,您可以在其中水平或垂直滚动。
这是我 atm 的错误行为:http://gfycat.com/LeafyWigglyGaur
【问题讨论】:
我使用 UICollectionView 控制器创建了一个天气应用程序,每个单元格设置为与屏幕相同的大小,水平滚动,每个单元格内都有 UIScrollvViews 和 UITableViews。对角线滚动似乎不会影响集合视图。 如果没有更好的解决方案,明天试试。谢谢。 【参考方案1】:我从 UIPageView 切换到 UICollectionView 并且仍然无法正常工作。也许这是我不知道的视图设置。
但是,在我将 UICollectionView 和 UITableView 子类化并在两者上实现以下 UIGestureRecognizer 委托方法后,它最终工作了:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] )
return NO;
return YES;
实现这一点的两个 uiscrollviews 应该锁定滚动方向
【讨论】:
这不是很好的解决方案,因为如果启用tableviewcell滑动删除,这个解决方案将无法满足。但我没有更好的以上是关于UIPageViewController 内的 UITableViewController,如何防止对角拖动的主要内容,如果未能解决你的问题,请参考以下文章
UIPageViewController 内的 UISlider
带有 UINavigationBar 的 UIPageViewController 内的 UIWebView
UIPageViewController 内的 UITableViewController,如何防止对角拖动
UIPageViewController EdgeInset 内的 UITableView 问题