UIButton touchUpInside事件没有正确触发



我有一个表视图,其中包含一行自定义单元格,其中包含一个UIButton。然而,按钮并不总是触发动作。下面是我的代码:

   submitButton = [[UIButton alloc] init];
    [[submitButton layer] setBorderColor:[[UIColor whiteColor] CGColor]];
    [submitButton setClipsToBounds: YES];
    submitButton.backgroundColor = [UIColor grayColor];
    [submitButton setTitle:@"Send" forState:UIControlStateNormal];
    [self.contentView addSubview:submitButton];
    [submitButton addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
    [submitButton release];

在自定义单元格的-(id)initWithStyle:

中调用

buttonAction方法如下所示:

 -(void)buttonAction
 {
     NSLog(@"Button Clicked!");
 }

似乎我能让buttonAction着火的唯一方法是,如果我按下按钮并释放细胞框架内的某个地方,但不是在按钮本身。为什么会这样?

* 更新* 问题仍然存在,但我发现让按钮触发的更一致的方法是单击并向左或向右拖动,然后放手,只要我在单元格/行范围内放手。

更新# 2 看起来如果我使用iOS 6.0,它会像预期的那样工作。但是在5.0或5.1版本中就没有了。

也尝试将相同的方法调用分配给TouchUpOutside -然后您应该看到它每次都有效。TouchUpInside只有当你在按钮范围内抬起手指时才会触发

试试[submitButton sizeToFit]。我想知道你的按钮是否有任何大小(因为我没有看到你给它任何)。

还有:用[UIButton buttonWithType: UIButtonTypeCustom]代替alloc-init创建按钮

最新更新