如何将触摸传递到另一个视图下方的按钮?

时间:2012-01-04 02:27:49

标签: iphone objective-c ios ipad uibutton

非常简单的问题,或许不是那么简单的答案:

我有一个清晰的观点需要接触。 下面这是一个UIButton,我也希望接受触摸(由于我不会进入的原因,它必须在下面)。在按下按钮的情况下,我不希望清晰视图接收触摸。

我该怎么做?

修改

最终解决方案:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {


    for (UIView * view in self.subviews)
    {
        if ([view isKindOfClass:[UIButton class]]) {
            CGPoint pointInButton = [view convertPoint:point fromView:self];
            if ([view pointInside:pointInButton withEvent:event]) {
                return view;
            }
        }
    }
    return [super hitTest:point withEvent:event];
}

1 个答案:

答案 0 :(得分:2)

为清晰视图提供对UIButton的引用。覆盖clear view的pointInside:withEvent:方法。在覆盖中,检查点是否在按钮内(通过向按钮发送pointInside:withEvent:)。如果该点位于按钮中,则返回NO。如果该点位于按钮之外,return [super pointInside:point withEvent:event]