从UIScrollView转发垂直滚动到兄弟UITableView

Enr*_*tyo 13 uitableview uiscrollview uikit ios

我有一个具有此层次结构的视图控制器:

查看控制器:

  • UIScrollView(水平滚动)
  • UITableView(垂直滚动)

在此输入图像描述

我想将垂直卷轴从我UIScrollView的兄弟转发到兄弟姐妹UITableView,这样当用户向上滚动时UIScrollView,它UITableView会向上滚动.最好的方法是什么?

我试过这些:

  • 检测到垂直滚动scrollViewDidScroll,因为滚动视图的contentOffset没有改变,所以不会调用它.
  • 子类化UIScrollView和重写touchesMoved,我无法将触摸转发到表视图,因为我在此类中没有对它的引用.

Ste*_*son 3

如果表格视图包含在滚动视图中,我相信您可以将滚动视图的手势识别器设置为仅在表格视图的手势识别器失败时才响应。我还没有机会尝试这个,但您应该能够在每个视图的手势之间建立依赖关系。

UITableView* tableView = ...;
UIScrollView* scrollView = ...;
for (UIGestureRecognizer* r in scrollView.gestureRecognizers)
{
    for (UIGestureRecognizer* tableRecognizer in tableView.gestureRecognizers)
    {
        [r requireGestureRecognizerToFail:tableRecognizer];
    }
}
Run Code Online (Sandbox Code Playgroud)