0

这是我的代码

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方法。请帮我!谢谢!

4

1 回答 1

2

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

action:@selector(doLike:)

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

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

bgDetails.userInteractionEnabled = YES;
于 2013-01-05T17:29:16.133 回答