我正在子类化一个与我的主 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/