创建UIView叠加以捕获所有触摸和手势

时间:2012-05-23 10:35:28

标签: objective-c uiview uiviewcontroller uigesturerecognizer uitouch

我有一个视图层次结构,其中包含一个顶级UIView,其中包含嵌套的UIScrollView,其中包含许多包含UILabel,UITextFields等的嵌套UIView。

我想将UIView覆盖在所有内容的顶部,以便拦截某些触摸和拖动事件(主要用于编辑整体布局)。

我希望UIScrollView仍能正常工作,所以我需要通过叠加层将(全部?)触摸和手势传递给底层视图。当某些触摸发生时,我将拦截触摸并创建一个拖动情境,触摸的子视图将以编程方式在子视图中移动。

创建叠加UIView的最佳方法是什么,以便(全部?)触摸和手势可以通过?一些代码示例将非常受欢迎。

非常感谢。

2 个答案:

答案 0 :(得分:0)

覆盖UIView的子类并覆盖touchesBegan,触及..这样的方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // Do your stuff
    [[[self view] nextResponder] touchesBegan:touches withEvent:event];
}

对touchesMoved,touchesEnded和touchesCancelled执行相同的操作。

不是100%肯定这会起作用,试一试:)

答案 1 :(得分:0)

最后我修改了我的结构,所以叠加层使用平移手势处理所有内容