如何在TableView中获取相同组的所有行

时间:2010-09-07 11:32:51

标签: iphone objective-c uitableview

请帮我在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];

}

1 个答案:

答案 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];