Day.03.03 UITableView 分组表视图删除

#import "ViewController.h"

#define kScreenW [UIScreen mainScreen].bounds.size.width
#define kScreenH [UIScreen mainScreen].bounds.size.height

@interface ViewController ()

@property (nonatomic,strong) NSMutableArray *datalist;
@property (nonatomic,strong) UITableView *tableView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 64, kScreenW, kScreenH-64) style:UITableViewStyleGrouped];
    
    _tableView.dataSource = self;
    
    _tableView.delegate = self;
    
    [self.view addSubview:_tableView];
    
    //1.获取文件路径
    NSString *path = [[NSBundle mainBundle]pathForResource:@"font" ofType:@"plist"];
    
    //2.通过路径加载容器对象
    
//    _datalist = [NSMutableArray arrayWithArray:[NSArray arrayWithContentsOfFile:path]];
    
    //(1)读取文件不可变数组
    NSArray *plist = [NSArray arrayWithContentsOfFile:path];
    
    //(2)初始化可变数组
    _datalist = [[NSMutableArray alloc]init];
    
    //(3)将所有的二级数组复制为可变数组 并添加到datalist中
    for (NSArray *subarr in plist) {
        
        NSMutableArray *ma = [NSMutableArray arrayWithArray:subarr];
        
        [_datalist addObject:ma];
        
    }
    
    
}

//进入多选模式
- (IBAction)multipleSelect:(UIButton *)sender {
    
    
    if (sender.selected == YES) {
        
        
        //1.获取所有选中的单元格下标
        NSArray *indexPaths = [_tableView indexPathsForSelectedRows];
        
        //2.删除数据
        /**
         *  为了防止下标越界,所以采用倒序遍历并删除
         */
        
        NSLog(@"%@",indexPaths);
        
        for (NSInteger i = indexPaths.count-1; i>=0; i--) {
            
            NSIndexPath *indexP = indexPaths[i];
            
            //(1)获取section对应的数组
            NSMutableArray *subArr = _datalist[indexP.section];
            
            //(2)
            [subArr removeObjectAtIndex:indexP.row];
            
        }
        
        //3.删除单元格
        [_tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
    }
    
    
    sender.selected = !sender.selected;
    
    //在编辑期间允许单元格多选 --> 开启该选项 插入单元格和删除单个单元格 功能就不存在了
    _tableView.allowsMultipleSelectionDuringEditing = sender.selected;
    
    //表视图开启编辑模式
    [_tableView setEditing:sender.selected animated:YES];
    
    NSLog(@"%@",_datalist);
    
}

#pragma mark --UITableViewDataSource

//可选方法:返回 组个数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return _datalist.count;//组个数
}

//返回 每个组有多少个单元格
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    //1.从datalist中获取section下标对应的对象--->小数组(盛放的NSString*)
    NSArray *subArray = _datalist[section];
    
    return subArray.count;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    //1.
    static NSString *identifier = @"font_cell";
    
    //2.
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    
    //3.
    if (cell == nil) {
        
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
        
    }
    
    
    //1.不分组情况
    
//    cell.textLabel.text = [_dataList objectAtIndex:indexPath.row];
//    
//    cell.textLabel.font = [UIFont fontWithName:[_dataList objectAtIndex:indexPath.row] size:20];
    
    //2.分组
    
    
        //(1)在datalist中 找到section对应的二级数组
    
    NSArray *subArray = _datalist[indexPath.section];
    
        //(2)在二级数组中 找到row对应的字符串对象
    cell.textLabel.text = subArray[indexPath.row];
    cell.textLabel.font = [UIFont fontWithName:subArray[indexPath.row] size:20];

    return cell;
}

@end
Day.03.03 UITableView 分组表视图删除_第1张图片
屏幕快照 2016-03-03 下午8.43.51.png

你可能感兴趣的:(Day.03.03 UITableView 分组表视图删除)