我有一个表视图,其中包含一行自定义单元格,其中包含一个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创建按钮