从子视图到superview转发UIGestures

时间:2014-10-04 17:36:05

标签: objective-c uiscrollview uigesturerecognizer uiresponder

我有这个视图层次结构:

enter image description here

绿色UIView包含一些按钮。 蓝色的UIView是一个水平的UIScrollView。

问题在于,当我在绿色视图上滑动时,它捕获滑动并浪费它!

如何将手势从greenView转发到blueView(scrollView)?所以blueView可以相应地滚动。

这是样本。在真正的绿色视图背景颜色是明确的。为了识别它的框架,我用0.5 alpha将它染成绿色。

https://www.dropbox.com/s/5s3orvpg378dw29/forwardTouchSample.zip?dl=0

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

尝试在您的绿色视图中添加滑动手势,并设置每个手势的动作以选择上一张/下一张图片。

将以下代码附加到您共享的示例代码的viewDidLoad类的ViewController中:

UISwipeGestureRecognizer* gesturePrev = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(prev:)];
gesturePrev.direction = UISwipeGestureRecognizerDirectionRight;

[headerVC.view addGestureRecognizer:gesturePrev];

UISwipeGestureRecognizer* gestureNext = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(next:)];
gestureNext.direction = UISwipeGestureRecognizerDirectionLeft;

[headerVC.view addGestureRecognizer:gestureNext]; 

希望这有帮助!