UIView添加单击手势后UIButton无法工作

15

我已经设置了一个UIButton,并像通常一样将其连接到我的视图控制器中的操作。仅这样本身就可以正常工作。

现在,我已经在我的视图控制器中添加了以下内容,以设置单击:

- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer * singleTapGesture = [[UITapGestureRecognizer alloc] 
                                             initWithTarget:self
                                             action:@selector(handleSingleTap:)];
[self.view addGestureRecognizer:singleTapGesture];
[singleTapGesture release]; }

每次我点击按钮时,似乎都已经点击过了,但是它触发的却是手势识别器代码,而不是按钮动作。

我该如何让按钮在我点击它时起作用,并且当我在视图中的任何其他地方点击时,触摸手势起作用?

3个回答

13

这里有一个简单的解决方案

singleTapGesture.cancelsTouchesInView = NO;

2
太好了。这正是我所需要的。 - Carl Hine

13

是的,这就是我在寻找的。谢谢,当我在寻找答案时我没有看到这个。 - Andrew

1

安德鲁,

我觉得你想在用户点击除 UI 对象以外的任何地方时调用一个函数。

所以我的建议是创建一个屏幕大小的自定义按钮(假设灰色条已显示为 320x460),将其放置在 IB 中所有对象的后面。这时,您将能够看到一个几乎透明度为 0% 的 UIButton。

然后从 IB 中将自定义按钮的选择器选项拖到文件所有者并选择要调用的函数,就完成了。

这比你在代码中尝试的要简单。


谢谢您的建议,但那听起来有点笨拙。在我看来,它应该先处理按钮(子视图),然后再到父视图,我不确定为什么它不这样做或者我做错了什么。 - Andrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接