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

发布于 2024-11-03 20:20:20 字数 562 浏览 0 评论 0原文

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

这就是我的 didSelectRowAtIndexPath

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

这似乎是一个简单的问题。我知道我可以放入 [tableView deselectRowAtIndexPath:indexPathAnimated:YES]; 但这只会使它在我单击它后立即取消突出显示。

谢谢!

亚伦

Is it possible to make one cell in a UITableView have an ON/OFF behavior? Basically, when I click a cell, it becomes green, which is what I want. It doesnt go to another viewController or anything. But then when I click that same cell again, in the same view, I want the green to disappear and for it to return back to it's previous color state.

This is how I have my didSelectRowAtIndexPath

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

This seems like an easy question. I know I can drop in the [tableView deselectRowAtIndexPath:indexPath animated:YES]; but that just makes it unhighlighted right away after I click it.

Thanks!

Aaron

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

铜锣湾横着走 2024-11-10 20:20:20

您可以在选择时更改 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;
}

you could change the background color of you UITableViewCell on selection, So you may use BOOL which will tell you what to fill in background (whether green or just clear color).

Access you cell through the below method

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

Use below as the reference code.

- (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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文