在tableview中选中标记,只选中一个

时间:2014-04-28 14:20:22

标签: ios objective-c uitableview

嗨我知道如何在选择时在每一行上添加刻度线,但是如何只允许选中一个?

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.CityTableView deselectRowAtIndexPath:indexPath animated:YES];
    [self.CityTableView setTintColor:[UIColor grayColor]];
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
     [self.CityTableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark;
}

这适用于每一个,但我希望它删除最后一个,并在按下另一个时添加新的。

谢谢

1 个答案:

答案 0 :(得分:0)

将实例变量创建为NSIndexPath *selectedIndex;

在你的

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    // Your cell Initialization here

    cell.accessoryType = [indexPath isEqual:selectedIndex] ?UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;

    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
      NSIndexPath * prevIndexPath = selectedIndex;

      selectedIndex = indexPath;

      [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:prevIndexPath, indexPath, nil] withRowAnimation:UITableViewRowAnimationFade];
}