我正在继承一个与我的主ViewController(1024x768)大小相同的视图。此子视图具有透明背景,并包含大小为50w X 50h且动态定位的按钮。
我的问题是我需要与此视图下方的内容和按钮进行互动,但此子视图会阻止该互动。
我看到一些帖子解决了类似问题,但我不清楚实际用法。
答案 0 :(得分:2)
-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视图所在位置并接受触摸事件的正确位置。
答案 1 :(得分:1)
您是否尝试将userInteractionEnabled设置为YES或NO?
答案 2 :(得分:1)
如果所有其他方法都失败了,您可以使用
以编程方式将这些子视图带到前面 [self.view bringSubviewToFront:buttonToClick];