最近有朋友评论我写上一篇cell的左滑功能,催我写Cell自定义批量选中,全选功能,我不禁翻看那篇文章,看着写文章的日期,不免有点尴尬,至今已有一年多的时间了,真是往事历历在目啊😓,然鹅我在努力记起怎么使用markdown,而最后一句话是
没想到拖了这么久。
关于UITableViewCell批量选中,全选等功能实现过程很简单,网上方法很多,本不想多此一举重复写着大家都写的方法,但是这篇文章还是要写的,给上一篇文章一个完美的结局。
在编辑模式中多选
// 编辑模式的时候可以多选
self.tableView.allowsMultipleSelectionDuringEditing = YES;
进入全选编辑模式
[self.tableView setEditing:YES animated:YES];
全选事件
//全选
for (int i = 0; i < 数据.count; i ++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:i inSection:0];
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionTop];
}
//取消全选
for (int i = 0; i < 数据.count; i ++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:i inSection:0];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}
获得选中的所有行
self.tableView.indexPathsForSelectedRows;
然后就可以操作删除事件了。。。。。。
关于自定义系统的选中和未选中图像
在自定义cell中
//简单实现
- (void)layoutSubviews {
[super layoutSubviews];
for (UIControl *control in self.subviews){
if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
for (UIView *v in control.subviews){
if ([v isKindOfClass: [UIImageView class]]) {
UIImageView *img=(UIImageView *)v;
if (self.selected) {
img.image=选中的图片;
}else{
img.image=未选中的图片;
}
}
}
}
}
}