【发布时间】:2014-11-24 19:57:07
【问题描述】:
让我们假设以下设置:
只有水平滚动,透明UIScrollView(带有蓝色背景和红色边框的矩形)和无限数量的UIImageView实例(红色方块)是相同UIView的子视图(@ 987654325@)。
UIScrollView 被
[self.view bringSubviewToFront:scrollView]
在包含UIViewController。
应实现以下功能:UIScrollView 应接收左/右滑动手势以水平滚动,而 UIScrollView 隐蔽的UIImageViews 应接收向上/向下滑动手势,添加为如下:
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeUpGestureHandler:)];
swipeUpGesture.direction = UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown;
[imageView addGestureRecognizer:swipeGesture];
这在UIImageView 未被UIScrollView 覆盖时有效,但当UIScrollView 在所述视图前面时显然无效。
总而言之,UIScrollView 应该将向上/向下滑动事件/手势转发到特定的底层UIImageView,但仍会接收常规的左/右滑动事件/手势以进行水平滚动.
根据我在文档中阅读的内容,如果 UIImageViews 包含在 UIScrollView 中,将很容易解决 - 但是,在此设置中这是不可能的,我很确定必须有解决这个问题的方法。
感谢任何提示,谢谢。
【问题讨论】:
标签: objective-c uiscrollview uigesturerecognizer uitouch uiswipegesturerecognizer