Ios 是否可以将滚动事件传递到右侧嵌套的UIScrollview?

Ios 是否可以将滚动事件传递到右侧嵌套的UIScrollview?,ios,objective-c,uiscrollview,Ios,Objective C,Uiscrollview,我有两个带PaginEnabled的水平UIScroll视图 在纵向模式下,一切正常,但在横向模式下,滚动视图之间存在冲突。例如,如果当前可见视图是ScrollView2.View2,而我正在滚动到ScrollView1.View3,则ScrollView2滚动以及ScrollView1。它以某种方式接收ScrollView1的滚动事件。结果我得到的ScrollView2.contentOffset等于0.0(但它应该等于View2的X,例如384.0) 是否可以确定正在滚动的滚动条?我尝试使用

我有两个带PaginEnabled的水平UIScroll视图

在纵向模式下,一切正常,但在横向模式下,滚动视图之间存在冲突。例如,如果当前可见视图是ScrollView2.View2,而我正在滚动到ScrollView1.View3,则ScrollView2滚动以及ScrollView1。它以某种方式接收ScrollView1的滚动事件。结果我得到的ScrollView2.contentOffset等于0.0(但它应该等于View2的X,例如384.0)

是否可以确定正在滚动的滚动条?我尝试使用UIScrollViewDelegate方法进行修复,但没有帮到我,如果我使用WebView而不是视图,情况会变得更糟

编辑:

正如我前面提到的,我尝试在“didcoll”和其他委托方法中检查scrollview的实例,但是在这个方法中同步所有内容并不容易。我试图覆盖hitTest方法,但也没有帮到我

scrollViewDidScroll:

当用户滚动 接收器内的内容视图

  • (无效)scrollViewDidScroll:(UIScrollView*)scrollView
像这样的东西怎么了

-(void)scrollViewDidScroll:(UIScrollView*)scrollView
{
    if(scrollView == ScrollView2)
    {
        // do stuff
    }
}

我还没有找到将事件传递到右滚动视图的方法。但有几件事让它起作用:

首先,您需要禁用所有嵌套UIScrollView中启用的分页功能(因为嵌套UIScrollView将与父UIScrollView一起滚动)

实现嵌套滚动视图的分页:

/*
 * User stopped dragging the innerScroll, the view is not decelerating 
 * and it is still not at its place. Lets help the view to get into right place.
 */
-(void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    if ([scrollView isEqual:innerScroll] && !decelerate) {
        if(scrollView.contentOffset.x <= view1.frame.size.width/2){
            [innerScroll scrollRectToVisible:view1.frame animated:YES];
        } else {
            [innerScroll scrollRectToVisible:view2.frame animated:YES];
        }
    }
}

/*
 * User stopped dragging the innerScroll and the View is decelerating. 
 * Lets skip an efforts of the View to get into right place and put it ourselves.
 */
- (void) scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
    if ([scrollView isEqual:innerScroll]) {
        if(scrollView.contentOffset.x <= view1.frame.size.width/2){
            [innerScroll scrollRectToVisible:view1.frame animated:YES];
        } else {
            [innerScroll scrollRectToVisible:view2.frame animated:YES];
        }
    }
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if([scrollView isEqual:innerScroll]){
        if(CGRectIntersectsRect(scrollView.bounds, view1.frame)){
            if(CGRectIntersectsRect(filterScroll.bounds, view11.frame)){

            } else if(CGRectIntersectsRect(filterScroll.bounds, view22.frame)){

            }
            mainScroll.scrollEnabled = NO;
        } else if (CGRectIntersectsRect(scrollView.bounds, view2.frame)){
            mainScroll.scrollEnabled = YES;
        }
    }
}