在我的UITableView中,用户可以检查或不检查Cell。我怎么能弄明白,检查并将其保存在数组中?
使用以下代码,您可以检查单元格:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if ([cell accessoryType] == UITableViewCellAccessoryNone) {
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else {
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
答案 0 :(得分:3)
不要检查复选标记作为细胞的附件视图。正在重复使用单元格,这会弄乱你的逻辑。
相反,保持一组可变对象被呈现由当前被选中的单元格'又被检查过。
当用户点击一个单元格时,您可以在可变集中切换所呈现对象的成员资格,并相应地更新复选标记。
答案 1 :(得分:-1)
//loop through all sections in tableview
for (int section = 0; section < [tableView numberOfSections]; section++) {
//loop through all rows in each section
for (int row = 0; row < [tableView numberOfRowsInSection:section]; row++) {
//get the cell based on current index
NSIndexPath* cellPath = [NSIndexPath indexPathForRow:row inSection:section];
UITableViewCell* cell = [tableView cellForRowAtIndexPath:cellPath];
//check cell accessory
if([cell accessoryType] == UITableViewCellAccessoryCheckmark){
//cell has checkmark, add to array
}
}
}