ios – 将UIScrollView的垂直滚动转到同级UITableView

我有一个视图控制器与这个层次结构:

视图控制器

> UIScrollView(水平滚动)
> UITableView(可垂直滚动)

我想将UIScrollView中的垂直卷轴转发到兄弟UITableView,以便当用户在UIScrollView上滚动时,UITableView会向上滚动.最好的办法是什么?

我试过这些:

>检测scrollViewDidScroll中的垂直滚动,它不会被调用,因为滚动视图的contentOffset不会更改.
>对UIScrollView进行子类化并覆盖触摸已移动,我无法将触摸转发到表视图,因为我没有在此类中引用它.

解决方法

如果表视图包含在滚动视图中,我相信您可以设置滚动视图的手势识别器,以便仅当表视图的手势识别器失败时进行响应.我没有机会尝试这个,但你应该能够在每个视图的手势之间建立依赖关系.
UITableView* tableView = ...;
UIScrollView* scrollView = ...;
for (UIGestureRecognizer* r in scrollView.gestureRecognizers)
{
    for (UIGestureRecognizer* tableRecognizer in tableView.gestureRecognizers)
    {
        [r requireGestureRecognizerToFail:tableRecognizer];
    }
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...