1. 程式人生 > >修改tableView多選預設藍色選中按鈕 , 全選 , 取消全選

修改tableView多選預設藍色選中按鈕 , 全選 , 取消全選

經常會有需求 , 更改tableView多選的預設按鈕顏色 , 預設為藍色 , 很多情況下可能會根據自己專案的主題色進行修改 . 簡單粗暴 , 直接上程式碼 .

重寫Cell的佈局方法 , 依次遍歷子控制元件 , 修改預設顏色

- (void)layoutSubviews
{
    [super layoutSubviews];

    [self.subviews enumerateObjectsUsingBlock:^(__kindof UIControl * _Nonnull control, NSUInteger idx, BOOL * _Nonnull stop) {

        if
([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]) { for (UIView *view in control.subviews) { if ([view isKindOfClass:[UIImageView class]]) { UIImageView *imageView = (UIImageView *)view; if (self.selected
) { //設定選中時的照片 imageView.image = JYLoadImage(@"JY_selected"); }else{ //設定未選中時的照片 imageView.image = JYLoadImage(@"JY_select"); } } } } }]; }

全選和取消全選 , 遍歷資料來源 , 建立 NSIndexPatch

//清空選中陣列
    [self.selectedArray removeAllObjects];
    for (NSInteger index = 0; index < self.trashArray.count; index ++) {

        //取消全選
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:index];
        if (self.isAllSected) {
            //取消選中該行
            [self.trashList deselectRowAtIndexPath:indexPath animated:NO];
        }else{

            //全選
            //加入選中陣列
            [self.selectedArray addObject:indexPath];
            //選中該行
            [self.trashList selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
        }
    }

這裡寫圖片描述