05HW_MeiTuan_TableView_InsertAdd_MoreCustomStyleCell_OpenClose

大纲

一、多个自定义单元格
步骤:
1.自定义类型
2.Cell重用标识符
3.Cell上控件的关联
二、tableView的展开与闭合
步骤:
1.将被点击的区头bool取反
2.更新区中的行数
2.1 方法1(效率低):reloadData:更新表中所有的数据
2.2 方法2(效率高):reloadSections:刷新某个区的数据
3.根据bool值,刷新相应的区。
4.处理图片旋转
刷新表时,自定义区头方法会再次被执行,因此,可以在此方法中设置图片的旋转

图片旋转:
自定义区头方法中处理

 tipImgView.transform

小提示:C语言中的bool数组

    BOOL _flagArray[5];//[no,no,no,no,no];

三、删除
步骤:
1.点击按钮,让表进入编辑状态
2.设置编辑风格(如果是删除,不需要设置)
3.提交编辑
3.1 删除数据源
3.2 创建单元格索引
3.3 存到数组中

正文

一、多个自定义单元格
步骤:
1.类型
2.重用标识符
3.关联
项目:TableView_MoreCustomStyleCell0406
1.1

2.1

2.2

3.1

3.2
重点:

3.3

二、tableView的展开与闭合
项目:TableView_OpenCloseDelete0406
步骤:
1.将被点击的区头bool取反
2.更新区中的行数
2.1 方法1(效率低):reloadData:更新表中所有的数据
2.2 方法2(效率高):reloadSections:刷新某个区的数据
3.根据bool值,刷新相应的区。
4.处理图片旋转
刷新表时,自定义区头方法会再次被执行,因此,可以在此方法中设置图片的旋转

图片旋转:
在自定义区头方法中处理

 tipImgView.transform

小提示:C语言中的bool数组

    BOOL _flagArray[5];//[no,no,no,no,no];

源码:

#pragma mark - 区头按钮点击事件 展开/闭合
    //1.将被点击的区头bool取反
    _flagArray[sender.tag] = !_flagArray[sender.tag];
    //2.更新区中的行数
    //2.1 方法1(效率低):reloadData:更新表中所有的数据
//    [_tableView reloadData];
    //2.2 方法2(效率高):reloadSections:刷新某个区的数据
    //将刷新区的索引放入索引集合
    //3.根据bool值,刷新相应的区。
        NSArray *array = [_totalArr objectAtIndex:section];
        return array.count;

刷新顺序:
设置每个区的行数section4
设置每个区的行数section0
设置每个区的行数section1
设置每个区的行数section2
设置每个区的行数section3
设置单元格内容(0,2)
设置单元格内容(0,3)
设置单元格内容(0,4)
设置单元格内容(1,0)
设置单元格内容(1,1)
设置单元格内容(1,2)
设置单元格内容(1,3)
设置单元格内容(1,4)
设置单元格内容(2,0)
设置单元格内容(2,1)
自定义区头section0
自定义区头section1
自定义区头section2

处理图片旋转

//4.处理图片旋转
    //刷新表时,自定义区头方法会再次被执行,因此,可以在此方法中设置图片的旋转
    //4.1 旋转90度
    if (_flagArray[section] == YES)
    {
        tipImgView.transform = CGAffineTransformMakeRotation(M_PI_2);
    }
    //4.2 恢复
    else
    {
        tipImgView.transform = CGAffineTransformIdentity;
    }

三、删除
步骤:
1.点击按钮,让表进入编辑状态
2.设置编辑风格(如果是删除,不需要设置)
3.提交编辑
3.1 删除数据源
3.2 创建单元格索引
3.3 存到数组中

#pragma mark - 单元格的删除
//1.点击按钮,让表进入编辑状态
- (void)deleteClick:(UIBarButtonItem *)item
{
    [_tableView setEditing:!_tableView.editing animated:YES];
    item.title = _tableView.editing == NO ? @"删除" : @"完成";
}
//2.设置编辑风格(如果是删除,不需要设置)
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleDelete;
}
//3.提交编辑
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    //1.删除数据源
    NSMutableArray *mArray = [_totalArr objectAtIndex:indexPath.section];
    [mArray removeObjectAtIndex:indexPath.row];
    //2.创建单元格索引
    NSIndexPath *cellIndexPath = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section];
    //3.存到数组中
    NSArray *array = [NSArray arrayWithObjects:cellIndexPath, nil];
    //IndexPaths:存放索引的数组
    //删除单元格时,系统会刷新表
    [tableView deleteRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationFade];
}

你可能感兴趣的:(05HW_MeiTuan_TableView_InsertAdd_MoreCustomStyleCell_OpenClose)