14

我像往常一样设置了一个 UIButton 并连接到我的视图控制器中的一个动作。只是这本身就可以正常工作。

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

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

现在,每次我点击按钮时,它看起来都被点击了,但它会触发手势识别器代码而不是按钮操作。

我怎样才能使它在我点击按钮时按钮起作用,而当我点击视图中的其他任何地方时点击手势起作用?

4

3 回答 3

13

您的问题类似于希望已得到解答的这个问题;)

具有 UITapGestureRecognizer 的视图内的 UIButton

于 2011-01-21T17:58:31.507 回答
12

这是一个简单的解决方案

singleTapGesture.cancelsTouchesInView = NO;
于 2013-04-22T16:43:44.723 回答
1

安德鲁,

在我看来,当用户点击除 UI 对象之外的任何位置时,您想调用一个函数。

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

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

它比您在代码中尝试的更简单

于 2011-01-10T05:34:57.457 回答