我有一个视图UITapGestureRecognizer。因此,当我点击视图时,该视图上方会出现另一个视图。这个新视图有三个按钮。当我现在按下这些按钮之一时,我没有得到按钮动作,我只得到点击手势动作。所以我不能再使用这些按钮了。我该怎么做才能让事件通过这些按钮?奇怪的是按钮仍然突出显示。
UITapGestureRecognizer
在收到点击后,我不能只删除 UITapGestureRecognizer。因为有了它,新视图也可以被删除。意味着我想要 像全屏视频控件这样的行为 。
您可以将控制器或视图(无论哪个创建手势识别器)设置为UITapGestureRecognizer. 然后在委托中你可以实现-gestureRecognizer:shouldReceiveTouch:. 在您的实现中,您可以测试触摸是否属于您的新子视图,如果是,则指示手势识别器忽略它。类似于以下内容:
-gestureRecognizer:shouldReceiveTouch:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { // test if our control subview is on-screen if (self.controlSubview.superview != nil) { if ([touch.view isDescendantOfView:self.controlSubview]) { // we touched our control surface return NO; // ignore the touch } } return YES; // handle the touch }