ios - iPad:如何单击 UIView 透明部分下方的按钮

标签 ios objective-c xcode ipad uiview

我正在子类化一个与我的主 ViewController (1024x768) 大小相同的 View 。此 subview 具有透明背景并包含大小为 50w X 50h 且动态定位的按钮。

我的问题是我需要与存在于此 View 下方的内容和按钮进行交互,但此 subview 阻止了该交互。

我看到一些帖子解决了类似的问题,但我不清楚实际用法。

最佳答案

-pointInside:withEvent: 是 iOS 询问触摸是否在特定 View 内的方式。如果 View 返回 YES,iOS 调用 -hitTest:withEvent: 来确定被触摸的 View 的特定 subview 。如果该触摸位置没有 subview ,该方法将返回 self。因此,您可以通过像这样实现 -pointInside:withEvent: 将任何不在 subview 上的触摸传递回此 View 后面的 View :

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
    return ([self hitTest:point withEvent:event] != self);
}

如果你需要捕捉一些不在 subview 上的触摸,你的实现会更复杂,但这个方法仍然是告诉 iOS 你的 View 在哪里并接受触摸事件的正确位置。

关于ios - iPad:如何单击 UIView 透明部分下方的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15885723/

相关文章:

ios - 有没有一个很好的教程来使用 Storyboard实现 facebook 登录到 ios 应用程序?

ios - 保存结构的最快方法 iOS/Swift

ios - 无法使用旧版Cocoapods版本安装Pod

ios - 如果 View 的属性设置在 iOS 中的不同线程上,如何刷新 View

objective-c - 当我尝试拖动时,自定义 MKAnnotation 图像恢复为默认值

ios - 启动屏幕 Storyboard显示在模拟器中,但在 iPad Pro 时不显示在设备中

iphone - Apple 在哪个 WWDC session 视频中展示了用于本地化时间间隔格式化的 API?

ios - Xcode clang : error: unable to execute command: Segmentation fault: 11

ios - 如何以编程方式获取正确的 iOS 版本?

ios - 自动布局:使用 ScrollView 时宽度不正确