如何在目标c中的tableview上方实现一个选择/取消选择所有按钮?

Posted

技术标签:

【中文标题】如何在目标c中的tableview上方实现一个选择/取消选择所有按钮?【英文标题】:How to implement one select/deselect all button while above tableview in objective c? 【发布时间】:2018-07-07 13:00:40 【问题描述】:

我想在一个按钮上实现选择/取消选择所有功能,tableview 单元格所有按钮必须根据用户交互进行选择和取消选择。我有选择的数组和未选择的数组,同时通过 tableview 单元格按钮进行选择。下面给出的代码中,tableview 单元格按钮在 indexPath 方法中单击了地窖行。

NSMutableDictionary *d=[_studentArr objectAtIndex:indexPath.row];
cell.studentId.text=[[d objectForKey:@"student_id"]description];
cell.rollNum.text=[[d `enter code here`objectForKey:@"class_roll_no"]description];
cell.firstName.text=[[d objectForKey:@"first_name"]description];
cell.lastName.text=[[d objectForKey:@"last_name"]description];
cell.attendanceStatus.text=[[d objectForKey:@"status"]description];
cell.studentFullName.text=[[[d objectForKey:@"first_name"]description] stringByAppendingString:[[d objectForKey:@"last_name"]description]];
NSLog(@"studentFullName.text=%@ status=%@",cell.studentFullName.text,cell.attendanceStatus.text);

NSLog(@"Student array count=%ld",_studentArr.count);


cell.studentSelectBtn.tag=indexPath.row;
NSLog(@"Selectted cell indexpath===%ld",(long)cell.studentSelectBtn.tag);
[cell.studentSelectBtn setTag:indexPath.row];

[cell.studentSelectBtn addTarget:self action:@selector(studentselectBtnClicked:) forControlEvents:UIControlEventTouchUpInside];

if ([selectedArr containsObject:self.studentArr[indexPath.row]]) 
    [cell.studentSelectBtn setImage:[UIImage imageNamed:@"checkedAttendance.png"] forState:UIControlStateNormal];
    [cell.studentSelectBtn setUserInteractionEnabled:YES];

    NSLog(@"attendance Status in checked ===%@",cell.attendanceStatus.text);
    NSLog(@"selected array count=%ld",selectedArr.count);

else

    [cell.studentSelectBtn setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal];
    [cell.studentSelectBtn setUserInteractionEnabled:YES];

    NSLog(@"attendance status in unchecked====%@",cell.attendanceStatus.text);

【问题讨论】:

【参考方案1】:

您没有显示当前如何向selectedArr 添加/删除条目,但根据您所做的显示,您可以将这两种方法连接为“全选”/“取消全选”按钮的目标:

-(void) selectAll 
    self.selectedArr = [NSMutableArray arrayWithArray:self.studentArr];
    [self.unselectArr removeAllObjects];
    [self.tableView reloadData];


-(void) deselectAll 
    [self.selectedArr removeAllObjects];
    [self.unselectedArr = [NSMutableArray arrayWithArray:self.studentArr];
    [self.tableView reloadData];

【讨论】:

我有未选择的数组。请在下面找到详细信息: NSMutableArray *unselectedArray = [NSMutableArray arrayWithArray:_studentArr]; [unselectedArray removeObjectsInArray:selectedArr]; NSLog(@"*****unselectedArray=%@",unselectedArray); 将其添加到我的答案中 这两种方法我都需要在按钮 click ri8 中调用? 仍然无法正常工作。请与我分享任何替代解决方案。

以上是关于如何在目标c中的tableview上方实现一个选择/取消选择所有按钮?的主要内容,如果未能解决你的问题,请参考以下文章

目标 C:如何突出显示 tableView 单元格并在重新加载表格时保持突出显示?

当tableview样式在iOS中分组时,为啥节中的标题视图没有正确显示,目标c

设置大标题时 UITableView 上方的灰色背景

如何在 iOS 的 didselectrowatindexpath 中触发按钮操作方法,目标 c

如何在目标 c 中处理数据库中的特殊字符?

如何在tableview上方隐藏自定义视图