从 tableView.allowsMultipleSelectionDuringEditing = YES 选择行时如何防止蓝色突出显示
Posted
技术标签:
【中文标题】从 tableView.allowsMultipleSelectionDuringEditing = YES 选择行时如何防止蓝色突出显示【英文标题】:How can I prevent blue highlight when select row from tableView.allowsMultipleSelectionDuringEditing = YES 【发布时间】:2016-05-23 18:11:16 【问题描述】:我有一个表格视图和自定义 TableViewCell,配置为允许在编辑模式下选择多个单元格,当我选择单元格时会显示一个复选标记。
tableView.allowsMultipleSelectionDuringEditing = YES
当我在编辑模式下选择我的单元格时,我想防止蓝色突出显示。
我尝试了很多方法,比如配置单元格选择样式,但是通过这种配置,当单元格被选中时,“复选标记”将不会显示在编辑模式中。
cell.selectionStyle = UITableViewCellSelectionStyleNone;
在这种情况下,我真的需要帮助。谢谢。
【问题讨论】:
您可以将自定义突出显示颜色设置为清晰的颜色 @MSU_Bulldog 我该怎么做? 【参考方案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
【讨论】:
以上是关于从 tableView.allowsMultipleSelectionDuringEditing = YES 选择行时如何防止蓝色突出显示的主要内容,如果未能解决你的问题,请参考以下文章