我正在对与我的主 ViewController (1024x768) 大小相同的视图进行子类化。该子视图具有透明背景,并包含大小为 50w X 50h 且动态定位的按钮。
我的问题是我需要与此视图下方存在的内容和按钮进行交互,但此子视图阻止了该交互。
我看过一些帖子解决了类似的问题,但我不清楚实际用法。
我正在对与我的主 ViewController (1024x768) 大小相同的视图进行子类化。该子视图具有透明背景,并包含大小为 50w X 50h 且动态定位的按钮。
我的问题是我需要与此视图下方存在的内容和按钮进行交互,但此子视图阻止了该交互。
我看过一些帖子解决了类似的问题,但我不清楚实际用法。
-pointInside:withEvent:
是 iOS 询问触摸是否在特定视图内的方式。如果一个视图返回 YES,iOS 调用-hitTest:withEvent:
以确定被触摸的那个视图的特定子视图。self
如果该触摸的位置没有子视图,该方法将返回。因此,您可以通过如下实现将不在子视图上的任何触摸传递回此视图后面的视图-pointInside:withEvent:
:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
return ([self hitTest:point withEvent:event] != self);
}
如果你需要捕捉一些不在子视图上的触摸,你的实现会更加复杂,但是这个方法仍然是告诉 iOS 你的视图在哪里并接受触摸事件的正确位置。
您是否尝试将 userInteractionEnabled 设置为 YES 或 NO?
如果一切都失败了,您可以使用以编程方式将这些子视图放在前面
[self.view bringSubviewToFront:buttonToClick];