【问题标题】:hacking ios ui responder chain破解 ios ui 响应者链
【发布时间】:2012-05-25 15:25:26
【问题描述】:

我在处理触摸事件时遇到了一个微妙的问题。这可能不是通常的东西,但我认为这是可能的。我就是不知道怎么...

我有一个主视图 (A) 和一个主视图 (B),其中包含很多子视图 1、2、3、4、5,...

MainView
 SubView(A)
   1
   2
   3
 SubView(B)
   1
   2
   3

其中一些子视图 (1,2,4) 是滚动视图。

碰巧我想用两指平移在 A 和 B 之间切换。

我尝试将 UIPanGestureRecognizer 附加到 MainView,但滚动视图取消了触摸,并且它仅在某些时候有效。

我需要一种一致的方法来首先捕获触摸,检测它是否是两个手指平移,然后才决定它是否会向下(或向上......我不确定)响应链传递触摸。

我尝试创建一个顶级视图来处理这个问题,但我无法让触摸通过该视图传递。

我发现很多人有类似的问题,但无法从他们的解决方案中找到解决这个问题的方法。

如果有人能给我一盏灯,那就太好了,因为我已经绝望了。

【问题讨论】:

    标签: ios cocoa-touch uiscrollview uiresponder


    【解决方案1】:

    您可以创建一个顶级视图来捕获触摸和触摸坐标,然后您可以检查触摸坐标是否在子视图内。您可以使用

    BOOL CGRectContainsPoint(CGRect rect, CGPoint point)
    

    方法。 rect是view的frame,point是touch point。

    请注意,框架和触摸位置是相对于它们的超级视图,因此您需要将它们转换为应用程序窗口的坐标系。

    或许它会更有帮助

    Receiving touch events on more then one UIView simultaneously

    【讨论】:

      猜你喜欢
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      相关资源
      最近更新 更多