【问题标题】:Do not un-highlight cell immediately after selection (instead, un-highlight it on view-will-appear)不要在选择后立即取消突出显示单元格(相反,在视图将出现时取消突出显示它)
【发布时间】:2018-04-27 14:28:48
【问题描述】:

我有一个带有自定义单元格的表格视图,这些单元格在委托函数didHighlightRowAtdidUnhighlightRowAt 中定义了自定义突出显示样式(例如,我正在更改背景颜色)。

但是,当我选择一个单元格时,会立即触发取消突出显示功能 - 我该如何避免这种情况?我希望单元格保持突出显示,而是在 viewwillappear 中取消突出显示。

谢谢!

[我将tableView.selectionStyle 设置为.none,因为这是在不使用标准选择样式的情况下进行自定义突出显示的唯一方法。这可能是问题吗?]

【问题讨论】:

  • 你可能使用deselectRow(at:animated:),特别是在你didSelectRow方法中?这将触发取消突出显示。
  • hmm,我只在viewWillAppear使用,所以这不是问题
  • “我正在更改背景颜色” ...您是否尝试更改突出显示背景颜色?如果是这样,听起来你把事情复杂化了。
  • @DonMag 我只更改单元格特定部分的颜色,而不是整个背景 - 这就是为什么我没有使用标准选择样式
  • 您是否在自定义单元格中查看过覆盖setHighlighted() 和/或setSelected()

标签: ios swift uikit tableview


【解决方案1】:

好的,我已经解决了这个问题,但是我认为我的解决方案更像是一种变通方法,因此仍然非常感谢更好的方法!

看起来流程如下:

- releasing a cell
- cell is unhighlighting
- cell becomes selected

所以我所做的是在取消突出显示之后,再次手动突出显示单元格,然后在 viewWillAppear 中

【讨论】:

    猜你喜欢
    • 2018-03-12
    • 2011-04-12
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2015-09-27
    • 2015-12-13
    • 2013-12-20
    相关资源
    最近更新 更多