0

是否可以使 UITableView 中的一个单元格具有开/关行为?基本上,当我单击一个单元格时,它会变成绿色,这就是我想要的。它不会转到另一个 viewController 或任何东西。但是当我再次单击同一个单元格时,在同一个视图中,我希望绿色消失并返回到以前的颜色状态。

这就是我的 didSelectRowAtIndexPath

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *selectedPhrase = [dataTable objectAtIndex:indexPath.row];
    [self setCurrentPhrase:selectedPhrase];
}

这似乎是一个简单的问题。我知道我可以加入,[tableView deselectRowAtIndexPath:indexPath animated:YES];但这只会在我单击它后立即不突出显示。

谢谢!

亚伦

4

1 回答 1

1

您可以UITableViewCell在选择时更改您的背景颜色,因此您可以使用 BOOL 来告诉您填充背景的内容(无论是绿色还是纯色)。

通过以下方法访问您的单元格

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath

使用下面作为参考代码。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *selectedPhrase = [dataTable objectAtIndex:indexPath.row];
    [self setCurrentPhrase:selectedPhrase];

      MyCutsomCell* myCell= (MyCutsomCell*)[tableView cellForRowAtIndexPath:indexPath];
      if(myCell.isGreen)
      {
         //Change backgroundColor to Green
      }
      else
      {
         //Clear backgroundColor
      }

      myCell.isGreen = !myCell.isGreen;
}
于 2011-04-29T03:46:24.920 回答