这是我的解决方案:我使用 UIImageVIew 作为按钮
例如,starIcon 是一个 UIImageView,我将它作为按钮添加到我的自定义 UITableViewCell 中。ArticleCell 是我的自定义 UITableViewCell 类。
在 UITableView 数据源方法cellForRowAtIndexPath:
ArticleCell* cell = [tableView dequeueReusableCellWithIdentifier:@"reused"];
if (cell==nil) {
NSLog(@"init tableViewCell");
cell = [[ArticleCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"reused"];
UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(buttonCallback:)];
gesture.numberOfTapsRequired=1;
gesture.numberOfTouchesRequired=1;
[cell.starIcon addGestureRecognizer:gesture];
cell.starIcon.userInteractionEnabled=YES;
NSLog(@"init tableViewCell end");
}
确保设置userInteractionEnabled == true;
然后,在您的 buttonCallback 方法中,您可以通过
-(void)buttonCallback:(UIGestureRecognizer*)gestureRecognizer{
UIImageView* star = (UIImageView*)[gestureRecognizer view];
}
所以,你可以改变你的 imageView。