【问题标题】:How can I prevent blue highlight when select row from tableView.allowsMultipleSelectionDuringEditing = YES从 tableView.allowsMultipleSelectionDuringEditing = YES 选择行时如何防止蓝色突出显示
【发布时间】:2016-05-23 18:11:16
【问题描述】:

我有一个表格视图和自定义 TableViewCell,配置为允许在编辑模式下选择多个单元格,当我选择单元格时会显示一个复选标记。

tableView.allowsMultipleSelectionDuringEditing = YES

当我在编辑模式下选择我的单元格时,我想防止蓝色突出显示。

我尝试了很多方法,比如配置单元格选择样式,但是通过这种配置,当单元格被选中时,“复选标记”将不会显示在编辑模式中。

cell.selectionStyle = UITableViewCellSelectionStyleNone;

在这种情况下,我真的需要帮助。谢谢。

【问题讨论】:

  • 您可以将自定义突出显示颜色设置为清晰的颜色
  • @MSU_Bulldog 我该怎么做?

标签: ios objective-c uitableview


【解决方案1】:

您可以覆盖自定义 tableViewCell 的 selectedBackgroundView 属性 这行代码对我有用

[cell setSelectedBackgroundView:[[UIView alloc]initWithFrame:CGRectMake(cell.frame.origin.x, cell.frame.origin.x, cell.frame.size.width, cell.frame.size.height)]];

【讨论】:

    【解决方案2】:

    一种方法是覆盖单元格中的setHighlighted:animated::

    - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
        // do nothing
    }
    

    这将阻止突出显示行为,而不是选择行为。可以使用以下命令完全覆盖选择:

    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
        // update UI for selection state
    }
    

    【讨论】:

      【解决方案3】:

      斯威夫特:

      cell.selectedBackgroundView = UIView(frame: cell.frame) 或

      cell.selectedBackgroundView.isHidden = true

      但它可能仍然无法按您的预期工作。 When selected all of the cell's subviews' backgroundColor to clear color(transparent), you may want to recover it

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-17
        • 2016-06-13
        • 1970-01-01
        • 2021-02-03
        • 2013-04-20
        • 2011-10-26
        • 2020-11-29
        • 1970-01-01
        相关资源
        最近更新 更多