美文网首页
UITableViewCell批量选中,全选等功能

UITableViewCell批量选中,全选等功能

作者: 游某人 | 来源:发表于2017-11-16 23:45 被阅读88次

    最近有朋友评论我写上一篇cell的左滑功能,催我写Cell自定义批量选中,全选功能,我不禁翻看那篇文章,看着写文章的日期,不免有点尴尬,至今已有一年多的时间了,真是往事历历在目啊😓,然鹅我在努力记起怎么使用markdown,而最后一句话是


    Snip20171116_1.png

    没想到拖了这么久。
    关于UITableViewCell批量选中,全选等功能实现过程很简单,网上方法很多,本不想多此一举重复写着大家都写的方法,但是这篇文章还是要写的,给上一篇文章一个完美的结局。

    在编辑模式中多选

    // 编辑模式的时候可以多选
    self.tableView.allowsMultipleSelectionDuringEditing = YES;
    

    进入全选编辑模式

    [self.tableView setEditing:YES animated:YES];
    

    全选事件

    //全选
     for (int i = 0; i < 数据.count; i ++) {
                
                NSIndexPath *indexPath = [NSIndexPath indexPathForItem:i inSection:0];
                
                [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionTop];
                
    }
    
    //取消全选
    for (int i = 0; i < 数据.count; i ++) {
                
        NSIndexPath *indexPath = [NSIndexPath indexPathForItem:i inSection:0];
                 [self.tableView deselectRowAtIndexPath:indexPath animated:YES];  
            }
            
    

    获得选中的所有行

    self.tableView.indexPathsForSelectedRows;
    然后就可以操作删除事件了。。。。。。
    

    关于自定义系统的选中和未选中图像

    在自定义cell中

    //简单实现
    
    - (void)layoutSubviews {
        [super layoutSubviews];
        for (UIControl *control in self.subviews){
            if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
                for (UIView *v in control.subviews){
                    if ([v isKindOfClass: [UIImageView class]]) {
                        UIImageView *img=(UIImageView *)v;
                        if (self.selected) {
                            img.image=选中的图片;
                        }else{
                            img.image=未选中的图片;
                        }
                    }
                }
            }
        }
    }
    

    搞定,是不是很简单,惊不惊喜,意不意外。

    相关文章

      网友评论

          本文标题:UITableViewCell批量选中,全选等功能

          本文链接:https://www.haomeiwen.com/subject/lsfdvxtx.html