// 选中操作- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // 取消前一个选中的,就是单选啦 NSIndexPath *lastIndex = [NSIndexPath indexPathForRow:_index inSection:0]; UITableViewCell *lastCell = [tableView cellForRowAtIndexPath:lastIndex]; lastCell.accessoryType = UITableViewCellAccessoryNone; // 选中操作 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; cell.accessoryType = UITableViewCellAccessoryCheckmark; // 保存选中的 _index = indexPath.row; [_tableView performSelector:@selector(deselectRowAtIndexPath:animated:) withObject:indexPath afterDelay:.5]; }// 设置行数据- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellIdentifier = @"cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: cellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease]; } NSString *fontName = _listArray[indexPath.row]; cell.textLabel.text = fontName; cell.textLabel.textColor = [UIColor blueColor]; cell.textLabel.font = [UIFont fontWithName:fontName size:18]; NSLog(@"%d", indexPath.row); // 重用机制,如果选中的行正好要重用 if (_index == indexPath.row) { cell.accessoryType = UITableViewCellAccessoryCheckmark; } else { cell.accessoryType = UITableViewCellAccessoryNone; } return cell;}