每次点击多次触发UIButton touchUpInside动作

时间:2009-08-06 19:45:52

标签: iphone uibutton

我在Interface Builder中设置了三个按钮,每个按钮通过touchUpInside绑定到btnSelection:

- (IBAction)btnSelection:(id)sender {
    NSLog(@"tag: %i", [sender tag]);
}

在我的控制台中,第一次单击正确注册(在延迟一秒钟之后,这看起来有点奇怪)但任何3个按钮的任何后续触摸都会导致首先记录前一个标记值,然后记录新标记

触摸#1(btn w / tag = 0):

标签:0

触摸#2(btn w / tag = 1):

标签:0 标签:1

触摸#3(btn w / tag = 2):

标签:1 标签:2

等等。

我无法弄清楚为什么每次都记录两个事件(第一个是先前触摸过的按钮。

4 个答案:

答案 0 :(得分:3)

一个可能的原因是,如果您将按钮连接到事件,然后复制该按钮并再次连接事件,则可能会两次调用btnSelection功能。

在界面构建器中,检查您是否只有一个回调到btnSelection

答案 1 :(得分:1)

在回调中放置一个断点,看看来电的来源。你所描述的内容在千百分之十的应用程序中运行得非常好 - 你以某种方式将你的常规称为2x。

(没有冒犯,但这是你的代码。:)

答案 2 :(得分:0)

我知道这个问题没有包含在问题中,但是如果您在自定义的uitableviewcell中有一个uibutton,请确保在设置单元格以供重复使用时不要弄乱选择设置。 (设置为重复使用的单元格的混乱可能会使单元格中的所有子视图变得怪异并使得事物堆积起来或者使按钮看起来像是在重新加载单元格时切换)在第一次自定义单元格格式时要弄清楚这些事情或者你的细胞制作完毕后

答案 3 :(得分:0)

这很可能与您在Interface Builder中犯的错误有关。我已经看到这种情况发生在例如单击视图中的按钮但是下一个视图有一些问题,比如复制和粘贴某些IB对象时断开的IBOutlet连接。对项目进行断点将导致3次调用IBAction然后死亡。