UITableViewCell实现多选、全选、全不选

使用场景之一:购物车的时候用到

1、设置cell可多选属性

1
self.tableV.allowsMultipleSelection = YES;

2、设置cell选择状态

1
cell.selectionStyle = UITableViewCellSelectionStyleNone

3、在cell上自定义一个选择Button(自定义名为:checkBtn),Button的selected属性跟cell里的selected的属性绑定。设置Button的两种状态:UIControlStateNormal和UIControlStateSelected的不同状态图片。

1
2
3
4
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
self.checkBtn.selected = selected;
}

4、获取所有被选中的cell的NSIndexPath数组

1
NSArray * selectRows = self.tableV.indexPathsForSelectedRows;

5、全选/取消全选

1
2
3
4
5
6
7
8
9
10
11
if (select) {
for (NSInteger i =0; i<self.dataArr.count; i++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:i];
[self.tableV selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
}
}else{
for (NSInteger i =0; i<self.dataArr.count; i++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:i];
[self.tableV deselectRowAtIndexPath:indexPath animated:YES];
}
}

打赏支持一下呗!