在iOS开发中,常常会碰到在列表中实现单选的功能,在tableView中,可以通过其自身来实现。
1 2
| 在这里定义tagIndex来标记当前选中的行 @property (assign, nonatomic) NSIndexPath *tagIndex;
|
1
| 在-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath这个方法中通过tagIndex来判断当前行是否被选中。
|
1 2 3 4 5 6 7 8
| if(_tagIndex == indexPath) { cell.accessoryType = UITableViewCellAccessoryCheckmark; } else { cell.accessoryType = UITableViewCellAccessoryNone; }
|
1
| 在-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath这个方法中
|
1 2 3 4 5 6 7 8
| //如果是之前选中的,则取消选择 UITableViewCell *celled = [tableView cellForRowAtIndexPath:_tagIndex]; celled.accessoryType = UITableViewCellAccessoryNone; //记录当前选中的位置 _tagIndex = indexPath; //当前选择的打勾 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; cell.accessoryType = UITableViewCellAccessoryCheckmark;
|
1
| 如果想要改变对号的颜色,可用cell.TintColor来设置。
|