iphone - 如何将触摸传递给另一个 View 下方的按钮?

标签 iphone objective-c ios ipad uibutton

很简单的问题,但也许不是那么简单的答案:

我有一个清晰的 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/

相关文章:

objective-c - 使用 AVAudioPlayer 框架完成播放后,如何再次播放相同的声音?

iphone - 适用于 iOS 的 Google Drive 与 Google Doc?

ios - 使用可变路径访问属性

ios - swift:指定哪个设备通过multipeer发送数据

iphone - NSURLConnection发送异步请求: Blocking Main Thread

iphone - 打乱数组未捕获异常

ios - 无法将数据传递给 Detail View Controller Swift 3

iphone - 使用 coredata 准备应用发布

ios - 解析.com : Sending email to admin after new user signup

iphone - 使用 AVAssetReader 和 ARC 绘制波形