更改自定义单元格中button的图像

我想要更改自定义单元格上的button的图像,给定的代码更改图像双击。我想改变图像单击(选中和取消选中)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *simpleTableIdentifier = @"SimpleTableCell"; SimpleTableCell *cell = (SimpleTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil]; cell = [nib objectAtIndex:0]; } NSString *localArrayData = [LocalArray objectAtIndex:indexPath.row]; cell.nameLabel.text =localArrayData; cell.CheckButton.tag=indexPath.row; [cell.CheckButton setImage:[UIImage imageNamed:@"checkU.png"] forState:UIControlStateNormal]; [cell.CheckButton addTarget:self action:@selector(CheckButtonAction:)forControlEvents:UIControlEventTouchUpInside]; return cell; } - (void)CheckButtonAction:(id)sender { NSInteger row = [sender tag]; NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0]; SimpleTableCell *cell = [DataTable cellForRowAtIndexPath:indexPath]; if(appDelegate.didSelect) { [cell.CheckButton setImage:[UIImage imageNamed:@"checkU.png"] forState:UIControlStateNormal]; appDelegate.didSelect = FALSE; } else { [cell.CheckButton setImage:[UIImage imageNamed:@"checkS.png"] forState:UIControlStateNormal]; appDelegate.didSelect = TRUE; } } 

你需要做这样的事情

 -(void)selectUser:(id)sender { UIButton *button=(UIButton *) sender; NSIndexPath *indexpath = [NSIndexPath indexPathForRow:button.tag inSection:0]; CustomTableViewCell *tappedCell = (CustomTableViewCell *)[yourTableView cellForRowAtIndexPath:indexpath]; if ([tappedCell.selectButton.imageView.image isEqual:[UIImage imageNamed:@"green.png"]]) { [tappedCell.selectButton setImage:[UIImage imageNamed:@"grey.png"] forState:UIControlStateNormal]; } else { [tappedCell.selectButton setImage:[UIImage imageNamed:@"green.png"] forState:UIControlStateNormal]; } } 

cellForRowAtIndexPath方法中,您将单元格的indexPath设置为button标记

 cell.selectButton.tag=indexPath.row; 

并将select器设置为button

 [cell.selectButton addTarget:self action:@selector(selectUser:) forControlEvents:UIControlEventTouchUpInside]; 

在UIButton Action里面写这个

 UIButton *btn = (UIButton *)sender; if (btn.tag==0) { btn.tag = 1; [btn setImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal]; } else { btn.tag=0; [btn setImage:[UIImage imageNamed:@"check.png"] forState:UIControlStateNormal]; }