在相同的单元格中,在同一视图中打开/关闭UITableView中的单元格

时间:2011-04-29 02:57:56

标签: iphone uitableview didselectrowatindexpath

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

这就是我的didSelectRowAtIndexPath

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

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

谢谢!

亚伦

1 个答案:

答案 0 :(得分: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;
}