UITableView实现全选

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 = @"全选";
    }

    
}```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容