【问题标题】:Grab view from touch event从触摸事件中获取视图
【发布时间】:2011-01-19 13:00:44
【问题描述】:

我有个小问题,

我有一个包含多个子视图的视图。

在我看来,我已经开始接触等等。

有没有一种方法可以从触摸开始检索子视图,而不必从触摸中检测位置,然后对 c 哪个子视图在该特定区域内有一个很大的 if else。

谢谢。

【问题讨论】:

    标签: iphone uiview uitouch


    【解决方案1】:

    我的解决方案不是从超级视图计算触摸位置。对子视图进行子类化并仅在其中获取触摸位置表格并将点相对于超级视图进行转换。

    【讨论】:

    • 谢谢,但是当您指的是子类时,您的意思是我应该从子视图中捕获触摸事件吗?
    • 是的,从子类中获取接触点后,将该点转换为superview并更改子视图的原点。
    【解决方案2】:

    你要的方法是UIView实例方法-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event。这将返回包含point 的最低级别的子视图。

    所以你得到了你的触摸点,将它传递给你最大的容器 UIView 的那个方法,并取回最前面的被触摸的子视图的句柄。轻松愉快。

    【讨论】:

    • 谢谢你,所以基本上在父视图上使用 hittest 来获得最低级别的视图。干杯!现在试试。
    • 您好,我试过了,但它返回的是相同的视图。即父视图而不是子视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多