我有一个方法selectAll来选择UITableView
中的所有单元格。此方法选中复选框(UIButton)
。它仅适用于"visible"
单元格,但不适用于"invisible"
单元格!
这是我的方法:
- (IBAction)selectAll:(id)sender {
for (NSInteger s = 0; s < self.tableView.numberOfSections; s++) {
for (NSInteger r = 0; r < [self.tableView numberOfRowsInSection:s]; r++) {
CustomCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:r inSection:s]];
if(!cell.checkbox.selected){
cell.checkbox.selected = !cell.checkbox.selected;
cell.account.checked = cell.checkbox.selected;
}
}
}
}
答案 0 :(得分:4)
来自文档:
cellForRowAtIndexPath:
返回值:
表示表格的单元格或
nil if the cell is not visible
或indexPath的对象超出范围。
您可以创建一个包含已选中或未选中的布尔列表的数组,并在单元格可见时查询它。
答案 1 :(得分:0)
您需要在“selected
”方法中选中或取消选中细胞的“checked
”或“cellForRowAtIndexPath
”状态。基础数据源是另一个可以跟踪您尝试在单元格中表示的数据状态的地方。
只需通过此功能修改UITableViewCells,即可更新当前在表格视图中可见的单元格。
答案 2 :(得分:0)
在cellForRowAtIndexPath中检查它。只需使用合适的indexPath.section
检查if条件if (indexPath.section== add the section){
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else{
cell.accessoryType = UITableViewCellAccessoryNone;
}