Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在UIScrollView的子视图中禁用水平滚动_Objective C_Ios_Uiscrollview - Fatal编程技术网

Objective c 在UIScrollView的子视图中禁用水平滚动

Objective c 在UIScrollView的子视图中禁用水平滚动,objective-c,ios,uiscrollview,Objective C,Ios,Uiscrollview,我有3个UIScrollView,称它们为A,B,和C A是一个分页滚动视图,其中有许多B滚动视图作为子视图(页面)添加。 B仅垂直滚动。 C是作为子视图添加到ui视图的滚动视图,该视图作为子视图添加到B 我试图实现的功能是: 如果在容纳C的ui视图中出现水平滚动,则不允许对A进行分页。但是,仍然允许垂直滚动B实现-(void)scrollViewDidScroll:(UIScrollView*)scrollView以确定哪个scrollView正在滚动,然后检查scrollView的conte

我有3个
UIScrollView
,称它们为
A
B
,和
C

A
是一个分页滚动视图,其中有许多
B
滚动视图作为子视图(页面)添加。
B
仅垂直滚动。
C
是作为子视图添加到
ui视图的滚动视图,该视图作为子视图添加到
B

我试图实现的功能是:

如果在容纳
C
ui视图
中出现水平滚动,则不允许对
A
进行分页。但是,仍然允许垂直滚动
B

实现
-(void)scrollViewDidScroll:(UIScrollView*)scrollView
以确定哪个scrollView正在滚动,然后检查scrollView的
contentOffset
属性以确定scrollView的滚动位置
ScrollViewDiEndDecelling
delegate可用于检测滚动结束

例如:-

- (void)scrollViewDidScroll:(UIScrollView*)scrollView {
    if (scrollView == C) {
       //disable scrolling of A
    }
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    if (scrollView == C) {
        //enable scrolling of A
    }
}

根据您的具体要求,您可以使用这两个委托和特定scrollview的
contentOffset
,以获得所需效果。

我在测试应用程序中设置了三层嵌套的滚动视图,就像您描述的那样:具有3页的顶级水平分页滚动视图,每个页面包含一个垂直滚动滚动视图,每个垂直滚动视图包含一个水平滚动滚动视图。在iOS 5.0和iOS 6.0模拟器下,一切都可以正常工作。在任意位置垂直拖动可滚动垂直滚动视图。在最里面的滚动视图外部水平拖动,在页面之间滚动。在最里面的滚动视图中水平拖动滚动视图,滚动视图不会改变页面。