这是我的代码
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
方法。请帮我!谢谢!
答案 0 :(得分:2)
这里有两个可能的问题。第一个是这个:我不确定这只是一个错字,但你写了
action:@selector(doLike:)
但后来你抱怨没有尾随冒号的选择器doLike
(即它不带参数)。如果这是问题,您可以通过更改其中任何一个来修复它,以便两个选择器名称匹配(它们都必须始终为doLike:
或doLike
。)
我看到的另一个错误是您将按钮添加为图像视图的子视图。 UIImageView
默认情况下关闭了用户互动,因此为了对用户触摸作出反应,您必须将其userInteractionEnabled
属性设置为启用:
bgDetails.userInteractionEnabled = YES;