UIButton touchUpInside事件未正确触发

时间:2013-01-09 19:23:13

标签: iphone cocoa uibutton

我的tableview包含一行,其中包含一个包含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上却没有。

2 个答案:

答案 0 :(得分:0)

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

另外:使用[UIButton buttonWithType: UIButtonTypeCustom]而不是alloc-init创建按钮。

答案 1 :(得分:0)

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