iOS中UITableView的编辑状态多选

本文详细介绍了UITableView在iOS开发中的多选功能实现方法,包括如何获取多选单元格的位置信息、实现全选与全不选操作的具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发工作中经常遇到列表编辑多选功能,UITableView其实自带的有多选功能,使用起来方便,不需要自己做选中状态,效果:

模拟器截图

获取多选cell的位置信息:

```
在  didSelectRowAtIndexPath:方法里获取并打印选中cell的位置信息:

```- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath {

NSArray*selectCells = [tableView indexPathsForSelectedRows];

NSLog(@"------%@",selectCells);

}




<div class="se-preview-section-delimiter"></div>

打印结果:


" {length = 2, path = 0 - 2}",

" {length = 2, path = 0 - 4}",

" {length = 2, path = 0 - 7}",

" {length = 2, path = 0 - 10}",

" {length = 2, path = 0 - 8}",

" {length = 2, path = 0 - 6}"

)




<div class="se-preview-section-delimiter"></div>

数组结果里是按照选中的顺序存储的数据。

然后是全选和全不选的操作,以下都是在单section情况下:
全选:

遍历一遍数据源 然后选中每一条:


- (void)allSelectAction:(UIButton*)sender {

[self.dataSourceenumerateObjectsUsingBlock:^(id_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {

[self.tableViewselectRowAtIndexPath:[NSIndexPathindexPathForRow:idxinSection:0]animated:NOscrollPosition:UITableViewScrollPositionNone];

}];

}




<div class="se-preview-section-delimiter"></div>

全选

全不选:

全不选,reload就可以变为全不选状态了,如果不想reload这样简单粗暴的,也可以取出当前选中的indexpath数组,遍历反选也可以。


- (void)allUnSelectAction:(UIButton*)sender {

[[self.tableViewindexPathsForSelectedRows]enumerateObjectsUsingBlock:^(NSIndexPath*_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {

[self.tableViewdeselectRowAtIndexPath:objanimated:NO];

}];

}

取消选择/全不选

引用文章:www.jianshu.com/p/a6e4cb42dd03
UITableView相关方法使用详细介绍:

http://www.jianshu.com/p/7680f1432fee

![全选](https://i-blog.csdnimg.cn/blog_migrate/408f61497b7416b8f51327b1e4a5ee83.webp?x-image-process=image/format,png)

全不选:

全不选,reload就可以变为全不选状态了,如果不想reload这样简单粗暴的,也可以取出当前选中的indexpath数组,遍历反选也可以。

```//全不选按钮事件

- (void)allUnSelectAction:(UIButton*)sender {

[[self.tableViewindexPathsForSelectedRows]enumerateObjectsUsingBlock:^(NSIndexPath*_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {

[self.tableViewdeselectRowAtIndexPath:objanimated:NO];

}];

}

取消选择/全不选

引用文章地址

UITableView相关方法使用详细介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值