UITableView是iOS众多UI控件中较为神奇的一个,熟练的使用UITableView必然能为你的UI界面搭建带来莫大的好处!
下面就UITableView的编辑样式做一下梳理:
UITableView的编辑样式:
typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) {
UITableViewCellEditingStyleNone, // 无样式
UITableViewCellEditingStyleDelete, // 删除样式
UITableViewCellEditingStyleInsert // 插入样式
};
self.dataArr = @[ @"一一一一一一一一",
@"二二二二二二二二",
@"三三三三三三三三",
@"四四四四四四四四",
@"五五五五五五五五",
@"六六六六六六六六",
@"七七七七七七七七",
@"八八八八八八八八"];
// 设置
self.tableView.editing = YES;
//同时实现talbeView的代理方式:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row < 2) { // 删除样式
return UITableViewCellEditingStyleDelete;
} else if (indexPath.row >= 2 && indexPath.row < 4) { // 插入样式
return UITableViewCellEditingStyleInsert;
} else if (indexPath.row >=4 && indexPath.row < 6){ // 圆圈样式
return UITableViewCellEditingStyleInsert | UITableViewCellEditingStyleDelete;
} else { // 无样式
return UITableViewCellEditingStyleNone;
}
}
即可展示UITableView的编辑样式,如下图:
以上分别对应的样式为 删除 , 插入,(特殊的样式!!!!),无样式, 其中比较特别的也是这篇博文主要要介绍的功能.
-----------------------------------------------
当返回的样式是
return UITableViewCellEditingStyleInsert | UITableViewCellEditingStyleDelete;
时,
展示的是前面有个圆圈的样式,这种样式可以实现选中和反选功能 (这种样式的cell还是很实用并且常见的).
设置
UIView *view = [[UIView alloc] initWithFrame:cell.bounds];
view.backgroundColor = [UIColor whiteColor];
cell.multipleSelectionBackgroundView = view;
就可以把这种样式选中的蓝色背景给去掉.(应该也有其他方法,你们可以自行探索哦)
其中 self.tableView.indexPathsForSelectedRows; 返回的是所有选中cell的indexPath
数组.用时可以通过遍历 数组获得所有选中的cell 所在的分区和行.从而进行相应的逻辑处理!
self.tableView.tintColor = [UIColor redColor]; 可以修改前面圆圈的颜色
---------------------------------------------------
至于删除功能,一般不用在编辑状态下的删除,而是用用左滑删除:
此时设置 self.tableView.editing = NO;(默认为NO),然后实现代理方法:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"----->%ld",editingStyle);
if (editingStyle == UITableViewCellEditingStyleDelete) {
NSLog(@"---->点击了删除"); // 在这里面做相应的删除逻辑处理
}
}
效果图如下:
插入的编译样式(除了苹果通讯录有用到)基本没见过.....
以上为内容为个人总结,如果纰漏欢迎批评指正!