ios - 如何防止 UITableViewCell 在部分刷新时丢失其选择状态?

标签 ios swift uitableview uikit swift4.2

我选择了一个 UITableViewCell,但是当我调用这段代码时:

self.tableView.beginUpdates()
self.tableView.reloadSections(IndexSet(integer: 0), with: .none)    
self.tableView.endUpdates()

它失去了它的选择状态,但即使我做了这两件事:

self.tableView.beginUpdates()
self.tableView.reloadSections(IndexSet(integer: 0), with: .none)
tableView.selectRow(at: IndexPath(row: 0, section: 0), animated: false, scrollPosition: .none)    
self.tableView.endUpdates()

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// get cell
cell.setSelected(true, animated: false)

单元格会在一秒钟内失去其选择状态,这是一个小问题。我希望单元格的外观即使在眨眼时也没有变化。

注意:我将日志语句放在通常的 shouldHighlight 和 didUnSelect 等方法中,但没有对那些人产生影响。

最佳答案

不要将代码行包含在 beginUpdates()endUpdates() 中。这将启动一个“动画事务”以将 tableView 操作一起动画化。我假设 tableView 在这种情况下运行动画,即使您将 .none 设置为动画,因此以故障结束。

关于ios - 如何防止 UITableViewCell 在部分刷新时丢失其选择状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53650127/

相关文章:

IOS 分组 TableView 透明单元格

objective-c - 无法从服务中读取 JSON

swift - 更改 UISearchBar 内 UItextField 中图标的颜色

ios - 在 cellForRow 中访问 NSUserDefaults(在 :IndexPath) in Swift, 内存使用

ios - 在 UITableView 中, "visibleCells"的代表是什么?

ios - UITableView 单元格在滚动时移动位置或完全消失

iphone - 将 iOS 应用程序安装程序 (.ipa) 转换为 .deb

ios - 我将如何从一系列不同的单词或句子中淡入和淡出?

ios - 如何使用 swift 设置条形按钮的图像?

ios - Swift 无法将选项卡栏添加到选项卡栏 View Controller ?变灰了?