UIButton没有响应'touchUpInside'但会响应'touchDown'

时间:2012-06-10 13:47:44

标签: objective-c ios uibutton human-interface uicontrolevents

在我的程序中,我有一个以编程方式声明的UIButton作为UIVIewController的属性。我已将其设置为在用户触发touchUpInside事件时发送操作,如下所示:

[restartButton addTarget:self action:@selector(handleRestart) forControlEvents:UIControlEventTouchUpInside]; 其中restartButtonUIButton的名称。

当我在UIControlEventTouchDown参数中输入forControlEvents时,它可以正常工作。但是,UIControlEventTouchUpInside根本不起作用。有谁知道这是为什么?

2 个答案:

答案 0 :(得分:3)

您可能需要查看restartButton.bounds。您可以将其设置为零,从而导致UIControlEventTouchUpInside永远不会发生。检查它的最佳方法是向图层添加边框。

[restartButton.layer setBorderWidth:1.0f];
[restartButton.layer setBorderColor:[UIColor redColor].CGColor];

不要忘记#import <QuartzCore/QuartzCore.h>以上工作

答案 1 :(得分:3)

查看此问题并回答:https://stackoverflow.com/a/11667958/607730。父视图上有一个UITapGestureReconizer,它拦截了TouchUpInside事件,但即使通过也允许触摸。