UITableView实现全选以及取消全选在此之前我曾经写过UITableView如果实现多选,在简书中,有需要的可以点击查看。UITableView实现多选。
在实现多选的基础上,进行全选以及取消全选的操作
*全选的操作 全选的操作
数组为TableView的行数组,因为我点击tableView的时候有操作,拼接字符串,所以我在全选的时候让每一行都去走一遍select方法。
*取消全选的操作 取消全选的操作
和上面同理
下面是我在我工程里的实际应用 应用
粘上代码,给下次犯懒的自己
#pragma mark - 全选
- (void)selectAll:(UIButton *)sender {
if ([self.navigationItem.rightBarButtonItem.title isEqualToString:@"全选"]) {
for (int row = 0; row < _classArr.count; row++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];
NSString *servicesItemStatus = [NSString stringWithFormat:@"%@", [_classArr[indexPath.row] objectForKey:@"servicesItemStatus"]];
// 如果没有添加过
if (![servicesItemStatus isEqualToString:@"1"]) {
[self tableView:_tbView didSelectRowAtIndexPath:indexPath];
[_tbView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}
}
self.navigationItem.rightBarButtonItem.title = @"取消全选";
}else {
for (int row = 0; row < _classArr.count; row++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];
NSString *servicesItemStatus = [NSString stringWithFormat:@"%@", [_classArr[indexPath.row] objectForKey:@"servicesItemStatus"]];
// 如果没有添加过
if (![servicesItemStatus isEqualToString:@"1"]) {
[self tableView:_tbView didDeselectRowAtIndexPath:indexPath];
[_tbView deselectRowAtIndexPath:indexPath animated:NO];
}
}
self.navigationItem.rightBarButtonItem.title = @"全选";
}
}```
网友评论