将手指放在其他单元格上时,选定的 tableViewCell 被取消选择

Posted

技术标签:

【中文标题】将手指放在其他单元格上时,选定的 tableViewCell 被取消选择【英文标题】:Selected tableViewCell is deselected when holding finger on other cell 【发布时间】:2011-02-11 09:04:40 【问题描述】:

我有一个带有自定义 tableViewCell 的 tableview。 The issue that I want to fix is that, when a cell is selected, and the user holds his finger on another cell, the currently selected cell is deselected.如果用户决定滚动(不选择另一个单元格)并抬起手指,则前一个单元格会再次被选中。只要用户确定选择了另一个单元格,我希望所选单元格保持突出显示。

我已尝试在 tableViewCell 的 setSelected 方法中处理此问题,但我无法区分这种情况和用户滚动 - 在这种情况下,单元格被重用(显然重用的单元格接收 setSelected 方法调用)。

【问题讨论】:

【参考方案1】:

我已经能够通过创建 tableView 的子类来解决它。我已经覆盖了 touchesBegan、Ended 方法,在这些方法中我设置了一个名为 gIsTouching 的全局 bool 变量,开始时为 YES,结束时为 NO(重要:您必须在调用 [super touchesBegan...] 和 [super touchesEnded. ..])。

然后在自定义单元格的 setSelected 方法中,如果 gIsTouching 为 YES,我不执行任何操作,否则我进行选择。

希望这可以帮助其他有类似问题的人。

【讨论】:

【参考方案2】:

如果我没记错的话,你正在寻找[cell setSelectionStyle:.... settor

【讨论】:

以上是关于将手指放在其他单元格上时,选定的 tableViewCell 被取消选择的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionViewController + diffableDataSource - 当您的手指仍在其上时,单元格不会突出显示

在 tableview 单元格中有 MKMapview 时 UITableView reloaddata 问题

保持某些单元格高度不变,同时更改其他单元格高度

UICollectionView 在单元格上拖动手指以选择它们

如果在表格单元格中,CSS悬停更改其他文本/类的样式不起作用

HTML / CSS / Javascript - 将鼠标悬停在不同的单元格上时更改一个表格单元格的值