iOS tableView实现单选和多选的实例代码 iOS tableView是iOS开发中最常用的控件之一,tableView可以用来展示列表数据,并且支持用户交互,包括单选和多选等功能。下面我们将通过实例代码来实现iOS tableView的单选和多选功能。 一、单选实现 我们需要使用一个变量来记录当前选中的行,我们可以使用NSIndexPath类型的变量来记录当前选中的行: ```objective-c @property (assign, nonatomic) NSIndexPath *selIndex; //单选选中的行 ``` 然后,我们需要设置tableView的数据,包括组数和每组的行数: ```objective-c - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 2; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 10; } ``` 接下来,我们需要实现tableView的点击事件,每次点击时记录当前选中的行,并取消之前的选择行: ```objective-c -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ //取消之前的选择 UITableViewCell *celled = [tableView cellForRowAtIndexPath:_selIndex]; celled.accessoryType = UITableViewCellAccessoryNone; //记录当前的选择的位置 _selIndex = indexPath; //当前选择的打钩 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; cell.accessoryType = UITableViewCellAccessoryCheckmark; } ``` 我们需要在tableView的cellForRowAtIndexPath方法中判断当前行是否为选中的行,如果是则设置cell的accessoryType为UITableViewCellAccessoryCheckmark: ```objective-c - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellid = @"cellid"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellid]; if (cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellid]; } cell.textLabel.text = [NSString stringWithFormat:@"第%zi组,第%zi行",indexPath.section+1,indexPath.row]; if (_selIndex == indexPath) { cell.accessoryType = UITableViewCellAccessoryCheckmark; }else{ cell.accessoryType = UITableViewCellAccessoryNone; } return cell; } ``` 二、多选实现 我们需要使用一个数组来记录当前选中的行: ```objective-c @property (strong, nonatomic) NSMutableArray *selectIndexs; //多选选中的行 ``` 然后,我们需要使用一个变量来判断当前是否为单选还是多选状态: ```objective-c @property (nonatomic, assign) BOOL isSingle; //单选还是多选 ``` 接下来,我们需要在导航栏右侧设置一个按钮来切换单选和多选状态,并初始化多选记录数组: ```objective-c UIBarButtonItem *rightItem = [[UIBarButtonItem alloc]initWithTitle:@"多选" style:UIBarButtonItemStylePlain target:self action:@selector(changeSelectType)]; ``` 我们需要在changeSelectType方法中切换单选和多选状态,并更新tableView的数据: ```objective-c - (void)changeSelectType { _isSingle = !_isSingle; [self.tableView reloadData]; } ``` 通过上面的代码,我们可以实现iOS tableView的单选和多选功能,包括记录当前选中的行,实现tableView的点击事件,并在tableView的cellForRowAtIndexPath方法中判断当前行是否为选中的行。
- 粉丝: 3
- 资源: 922
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助