- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
}
使用上述代理方法,设置tableView的可编辑状态
_contentTableView.editing = YES;
可以实现UITableview的多选功能,
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
通过这俩个代理方法,处理cell的选中与取消,将所选的行做保存之类的相关操作。
这样处理的话,tableview实际上是进入了编辑状态,与删除与插入是差不多的,在多选时前面会出现一个“√”的按钮。
但是UITableview有另外一个属性设置,同样可实现多选,
_contentTableView.allowsMultipleSelection = YES;
只需要设置这个属性,就可以实现多选,同样根据这两个代理方法进行多选后的操作。
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
比如像这样:
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.textColor = [UIColor blackColor];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.textColor = [UIColor whiteColor];
}