UITableview里面的单选button不起作用

我想添加单选button到UITableview。 单选button的function应该类似于当我select单选button的单选button,应该select单选button,其他单元中的其他所有单选button都应该被​​取消选中。 它应该是种或者,那只有一个单选button可以select。

创build一个int

 int selectstr; UIButton * button; - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ; } UILabel * title = [[UILabel alloc] initWithFrame:CGRectMake(50.0, 14.0, 215.0, 36.0)]; title.backgroundColor = [UIColor clearColor]; title.textAlignment = NSTextAlignmentLeft; title.textColor=[UIColor blackColor]; title.tag=indexPath.row; title.text = @"TEST"; // title.font = [UIFont fontWithName:@"Arial Hebrew" size:16.0f]; title.font = [UIFont fontWithName:@"Palatino-Roman" size:14.0]; [cell.contentView addSubview:title]; button = [[UIButton alloc] initWithFrame:CGRectMake(20.0f, 20.0f, 46.0f, 30.0f)]; button.tag=indexPath.row; if (selectstr ==indexPath.row) { [button setImage:[UIImage imageNamed:@"radio_selected.png"] forState:UIControlStateNormal]; cell.backgroundColor=[UIColor colorWithRed:(243.0/255.0) green:(114.0/255.0) blue:(74.0/255.0) alpha:1.0f]; } else { [button setImage:[UIImage imageNamed:@"radio_unselected.png"] forState:UIControlStateNormal]; cell.backgroundColor=[UIColor clearColor]; } button.adjustsImageWhenHighlighted=NO; [button addTarget:self action:@selector(toggleCheckedMode:) forControlEvents:UIControlEventTouchUpInside]; [cell.contentView addSubview:button]; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { selectstr=indexPath.row; [tableView reloadData]; } - (IBAction)toggleCheckedMode:(UIButton*)sender { [button setImage:[UIImage imageNamed:@"radio_selected.png"] forState:UIControlStateNormal]; // here customized for your self selectstr=sender.tag; [tableView reloadData]; } 
 Write this code into - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath NSIndexPath *selectedIndex; UIButton *radioButton; radioButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; radioButton.frame = CGRectMake(30,23,24,24); // [radioButton setTitle:@"" forState:UIControlStateNormal]; radioButton.tag = 8888; [cell.contentView addSubview:radioButton]; radioButton = (UIButton *)[cell.contentView viewWithTag:8888]; if (selectedIndex && selectedIndex.row == indexPath.row) { [radioButton setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal]; } else { [radioButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal]; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { selectedIndex =indexPath; [self.userTabelView reloadData]; }