将手指放在其他单元格上时,选定的 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 在单元格上拖动手指以选择它们