请帮我在tableView中获取同一组的所有行。我使用下面的代码来显示收视率/检查表视图组,并希望每组选择一个。
所以我有2张图片 1:取消选中 2:检查 因此,当用户点击/选择一行组而不是我将其cell.image更改为“已检查”及其工作但不知道如何将同一组的所有其他单元格的图像设为“未选中”
不知道如何循环(获取)当前组的所有行/单元格
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSArray *listData =[self.tableContents objectForKey:
[self.sortedKeys objectAtIndex:[indexPath section]]];
NSUInteger row = [indexPath row];
NSString *rowValue = [listData objectAtIndex:row];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.image = [UIImage imageNamed:@"checkbox-checked.png"];
NSString *message = [[NSString alloc] initWithFormat:rowValue];
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"You selected"
message:message delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
[message release];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
答案 0 :(得分:1)
以下是可能的解决方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Store the section in your class
NSUInteger section = indexPath.section;
self.section = section; // remember to declare instance variable, property, synthesize
self.row = row; // remember to declare instance variable, property, synthesize
[tableView reloadData];
}
- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == self.section) {
if (indexPath.row != self.row) {
// then do UNCHECK here
}
}
}
如果您知道当前部分中有多少行,则无需调用reloadData,只需调用[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:YOUR_ROW inSection:YOUR_SECTION];