带有ControlEvents的UI按钮无法在uitableviewcell上运行

时间:2013-01-05 17:16:42

标签: iphone uitableview

这是我的代码

UIImageView *bgDetails = [[UIImageView alloc] initWithFrame: CGRectMake(0, 20, 320, 47)];
bgDetails.image = [UIImage imageNamed:@"bgDetail"];

UIButton *btnLike = [UIButton buttonWithType:UIButtonTypeCustom];
[btnLike setBackgroundImage:[UIImage imageNamed:@"38_38"] forState:UIControlStateNormal];
btnLike.frame = CGRectMake(278, 4.5f, 37, 37);
[btnLike addTarget:self action:@selector(doLike:) forControlEvents:UIControlEventTouchUpInside];

[bgDetails addSubview:btnLike];
[cell.contentView addSubview:bgDetails];

btnLike不会调用doLike方法。请帮我!谢谢!

1 个答案:

答案 0 :(得分:2)

这里有两个可能的问题。第一个是这个:我不确定这只是一个错字,但你写了

action:@selector(doLike:)

但后来你抱怨没有尾随冒号的选择器doLike(即它不带参数)。如果这是问题,您可以通过更改其中任何一个来修复它,以便两个选择器名称匹配(它们都必须始终为doLike:doLike。)

我看到的另一个错误是您将按钮添加为图像视图的子视图。 UIImageView默认情况下关闭了用户互动,因此为了对用户触摸作出反应,您必须将其userInteractionEnabled属性设置为启用:

bgDetails.userInteractionEnabled = YES;