很简单的问题,但也许不是那么简单的答案:
我有一个清晰的 View 需要接收触摸。 在下面 这是一个 UIButton,我也想接收触摸(由于我不会深入的原因,它必须在下面)。在按下按钮的情况下,我不希望清晰的 View 接收到触摸。
我该怎么做?
编辑:
最终解决方案:
- (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];
}
最佳答案
为清晰 View 提供对 UIButton
的引用。覆盖清晰 View 的 pointInside:withEvent:
方法。在您的覆盖中,检查点是否在按钮内(通过将 pointInside:withEvent:
发送到按钮)。如果点在按钮中,则返回 NO。如果点在按钮外,返回 [super pointInside:point withEvent:event]
。
关于iphone - 如何将触摸传递给另一个 View 下方的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721326/