我有一个具有此层次结构的视图控制器:
查看控制器:
我想将UIScrollView
的垂直滚动条转发给同级UITableView
,以便当用户向上滚动UIScrollView
时,UITableView
会向上滚动代替。最好的方法是什么?
我试过这些:
scrollViewDidScroll
中的垂直滚动,因为滚动视图的contentOffset没有改变,所以不会调用它。UIScrollView
进行子类化并覆盖touchesMoved
,我无法将触摸转发到表格视图,因为我在此课程中没有引用它。答案 0 :(得分:3)
如果表视图包含在滚动视图中,我相信您可以设置滚动视图的手势识别器,以便仅在表视图的手势识别器失败时进行响应。我没有机会尝试这个,但你应该能够在每个视图的手势之间建立依赖关系。
UITableView* tableView = ...;
UIScrollView* scrollView = ...;
for (UIGestureRecognizer* r in scrollView.gestureRecognizers)
{
for (UIGestureRecognizer* tableRecognizer in tableView.gestureRecognizers)
{
[r requireGestureRecognizerToFail:tableRecognizer];
}
}
答案 1 :(得分:3)
这会使您同时使用UITableView
和UIScrollView
滚动并应用 @Stephen Johnson 的阻止
- (BOOL)gestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UISwipeGestureRecognizer *)otherGestureRecognizer
{
return YES;
}