UITabelViewCell 多选样式

参考文档
用 TableView 自带的选择功能,进行多选是比较方便的

tableView.allowsMultipleSelectionDuringEditing = YES;

但一般项目会要求对样式,即选择的图片或颜色 进行修改

// 修改TableViewCell在编辑模式下选中按钮的图片
- (void)layoutSubviews
{
    [super layoutSubviews];
    for (UIControl *control in self.subviews) {
        if (![control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
            continue;
        }
        
        for (UIView *subView in control.subviews) {
            if (![subView isKindOfClass: [UIImageView class]]) {
                continue;
            }
            
            UIImageView *imageView = (UIImageView *)subView;
            if (self.selected) {
                imageView.image = [UIImage imageNamed:@"check_selected"]; // 选中时的图片
            } else {
                imageView.image = [UIImage imageNamed:@"check_normal"];   // 未选中时的图片
            }
        }
    }
}
                               
// 修改TableViewCell在编辑模式下选中按钮的颜色
 - (void)layoutSubviews
{
    [super layoutSubviews];
    for (UIControl *control in self.subviews) {
        if (![control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
            continue;
        }
        
        for (UIView *subView in control.subviews) {
            if (![subView isKindOfClass: [UIImageView class]]) {
                continue;
            }
            
            UIImageView *imageView = (UIImageView *)subView;
            if (self.selected) {
                // KVC修改
                [imageView setValue:kNavBarColor forKey:@"tintColor"];   // 选中时的颜色
            } else {
                [imageView setValue:kGrayTextColor forKey:@"tintColor"]; // 未选中时的颜色(貌似没用?)
            }
        }
    }
}
UITabelViewCell 多选样式_第1张图片
UITabelViewCell 多选样式_第2张图片

你可能感兴趣的:(UITabelViewCell 多选样式)