更新:通过从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应用程序中.您可以向下滚动,然后在表视图仍在滚动的同时向右滑动.
解决方法
https://github.com/rishi420/SwipeWhileScroll
你可以在这里阅读更多关于这个话题:
Cross Directional UIScrollViews – Can I Modify the Scrolling Behaviour?