我有一个按钮,如果有任何东西被按下按钮,我想让它消失。所以我设置了目标:action:对于删除按钮:
[self.deleteButton addTarget:self action:@selector(deleteButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
稍后将添加手势识别器添加到包含视图:
[self.superview addGestureRecognizer:self.tapOutsideDelete];
执行此操作时,不会执行deleteButton的操作,就像无法识别按钮点击一样。在这种情况下,手势识别器确实有效。但是当我点击deleteButton时它也有效,这让我认为点击手势识别器优先于按钮点击。
如果我删除了手势识别器,则deleteButton可以正常工作。
我显然不明白如何一起处理这两个事件。我需要做什么?
(deleteButton正在模仿表格视图单元格的删除按钮,但在这种情况下我将它放在标题视图中。当我点击表格中的任何位置时,我希望调用一种方法使删除按钮消失按钮本身,与它在单元格中的工作方式相同。)
答案 0 :(得分:13)
是的,点击手势会在点击时首先出现问题。您需要实现gestureRecognizer:shouldReceiveTouch:
方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldReceiveTouch:(UITouch *)touch {
if (touch.view == self.deleteButton) {
return NO;
}
return YES;
}