我有一个视图控制器与这个层次结构:
@H_404_2@视图控制器
@H_404_2@> UIScrollView(水平滚动)
> UITableView(可垂直滚动) @H_404_2@我想将UIScrollView中的垂直卷轴转发到兄弟UITableView,以便当用户在UIScrollView上滚动时,UITableView会向上滚动.最好的办法是什么? @H_404_2@我试过这些: @H_404_2@>检测scrollViewDidScroll中的垂直滚动,它不会被调用,因为滚动视图的contentOffset不会更改.
>对UIScrollView进行子类化并覆盖触摸已移动,我无法将触摸转发到表视图,因为我没有在此类中引用它.
> UITableView(可垂直滚动) @H_404_2@我想将UIScrollView中的垂直卷轴转发到兄弟UITableView,以便当用户在UIScrollView上滚动时,UITableView会向上滚动.最好的办法是什么? @H_404_2@我试过这些: @H_404_2@>检测scrollViewDidScroll中的垂直滚动,它不会被调用,因为滚动视图的contentOffset不会更改.
>对UIScrollView进行子类化并覆盖触摸已移动,我无法将触摸转发到表视图,因为我没有在此类中引用它.
解决方法
如果表视图包含在滚动视图中,我相信您可以设置滚动视图的手势识别器,以便仅当表视图的手势识别器失败时进行响应.我没有机会尝试这个,但你应该能够在每个视图的手势之间建立依赖关系.
UITableView* tableView = ...; UIScrollView* scrollView = ...; for (UIGestureRecognizer* r in scrollView.gestureRecognizers) { for (UIGestureRecognizer* tableRecognizer in tableView.gestureRecognizers) { [r requireGestureRecognizerToFail:tableRecognizer]; } }