ios在两个uiscrollview之间移动触摸事件

我正在构建一个iOS布局,它包含一个UITableView和一个UIScrollView. UIScrollView位于UITableView的表格单元格内,可以水平和垂直滚动.下图显示了这种情况.如果用户开始在UIScrollView上向下/向上滚动,则滚动事件应该触发表视图的setContentOffset,而不是滚动视图的setContentOffset,而滚动视图的顶部将在虚线上(它是恒定高度).然后滚动触摸事件应触发滚动视图的setContentOffset,而不是表视图.

在另一种情况下:当用户开始在表视图上滚动时,它应该触发表视图的setContentOffset,直到滚动视图到达虚线.然后滚动视图应该处理setContentOffset.

我的问题是如何在一个滑动操作期间在表视图和滚动视图之间传输触摸事件.

最佳答案 这听起来像是你想要一些非常具体和自定义的情况之一.因此,尝试用手势识别器做一些聪明的事情是不够的.

主要问题是您可以控制手势识别器的方式,例如使用gestureRecognizer:shouldReceiveTouch:和gestureRecognizerShouldBegin:仅影响手势的开始(或者用于新的触摸,而不是正在进行的触摸),但是您希望单个正在进行的手势在控制每个视图.因此,我认为您需要在整个屏幕上放置一个大透明视图,其上有一个平移手势识别器,并且在handlePan方法中决定您要调整哪个视图,然后直接在该视图上调用setContentOffset.您可以使用平移识别器的转换和现有内容偏移来计算新的内容.我知道这不是很优雅,但我想不出另一种方法来达到你想要的效果.

点赞