ios – 无法在UIScrollView中的UITableView上同时向上/向下滚动并同时向左/向右滚动

第二次更新由于@ Segev的评论和引用另一个主题,我能够改进我的 demo,使其基本上做我想要的.然而,它仍然不像Instagram的实现那么顺利,我想知道有没有人知道我能如何改进它呢?此外,我注意到有时(在我的演示)中,当我向左/向右滑动很快时,我想切换到上/下滑动,它仍然会继续向左/向右滑动,直到我停止滑动,让它先停止

更新:通过从UIScrollView继承停止向上/向下滚动,我可以获取表视图,从UIGestureRecognizerDelegate实现shouldRecognizeSimultaneouslyWithGestureRecognizer和shouldBerequiredToFailByGestureRecognizer方法.我的想法是在shouldRecognizeSimultaneouslyWithGestureRecognizer中返回true,如果用户在tableView中向上/向下滚动,然后在shouldBerequiredToFailByGestureRecognizer中将表视图的上/下手势失败.

但是,在停止初始上/下滚动(用户的手指仍在设备上)之后,我仍然无法弄清楚如何让用户向上/向下或向左/向右滚动.

在这里创建了一个示例项目https://github.com/paulsfds/TableViewsInScrollView.您可以通过在桌面视图上滑动一次来测试,然后抬起手指,当它仍在滚动时,将手指放回来停止滚动.当你的手指仍然在桌面视图时,请尝试向左/向右滑动,并且它应该工作.但是,如果您尝试多次刷新表视图,这个实现将有时会被卡住,因为它会认为您正在尝试向左/向右滑动.有任何想法吗?

原来的:我有一个UITcViewView中的UITableViews,启用了分页,并设置为让我向左和向右页面,以便一次只能看到一个UITableView.这是一个图(摘自Conflictive scroll on UITableView within UIScrollView)

+--visible area--+  ---+
+---------`UIScrollView`---------+---------------+|  --+|
| +-------------+ +-------------+|+-------------+||  -+||
| |      0      | |      1      |||      2      |||   |||
| |`UITableView`| |`UITableView`|||`UITableView`|||  equal height
| |             | |             |||             |||   |||
| +-------------+ +-------------+|+-------------+||  -+||
+--------------------------------+---------------+|  --+| 
                                 +----------------+  ---+

我想要实现的是如果用户向下滚动表视图,然后将手指提起(并且向下滚动动画仍然发生),则用户可以选择向左和向右滑动以转到下一个表视图.现在如果用户向下滚动表格视图,而滚动的动画仍在继续,然后将手指放回左右滑动,则不允许用户向左滚动正确的,我卡在查看已经可见的表视图,除非我等待表视图滚动以完全停止,然后向左和向右滑动.

TL; DR基本上我不能向上/向下滚动表,同时在滚动视图中向左/向右滑动,但我希望能够这样做.这个例子就在“活动”选项卡上的iOS Instagram应用程序中.您可以向下滚动,然后在表视图仍在滚动的同时向右滑动.

解决方法

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...