禁用uitableview突出显示,但允许select单个单元格

当你点击一个单元格的行被选中,并突出显示。现在我想要做的是禁用突出显示,但允许select。是否有解决方法。有问题的答案,但它禁用select和突出显示。

您可以将单元格的select样式设置为Storyboard中的“无”:

看这里

或从代码:

 cell.selectionStyle = UITableViewCellSelectionStyleNone; 

对于Swift 3及以上版本:

 cell.selectionStyle = UITableViewCellSelectionStyle.none 

UITableViewCellselectedBackgroundView颜色更改为透明。

  let clearView = UIView() clearView.backgroundColor = UIColor.clearColor() // Whatever color you like UITableViewCell.appearance().selectedBackgroundView = clearView 

或者设置特定的单元格:

cell.backgroundView = clearView

尝试将单元格select样式设置为无 –

 [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

这将解决您的问题

对于Swift:

UITableViewCell.selectionStyle = UITableViewCellSelectionStyle.None;

或者当你用swift子类化一个单元格时:

 class CustomCell : UITableViewCell { required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! selectionStyle = .None } } 

对于Swift 3.0

 cell.selectionStyle = .none 

对于那些在Swift 3中寻找编程方式的人

cell.selectionStyle = UITableViewCellSelectionStyle.none

对于Objc:

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

 - (void)viewDidLoad { [super viewDidLoad]; _tableView.allowsSelection = YES; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { .. .. .. .. [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; . . . . .. } 

在迅速3

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: true) } 

这是swift 3的解决scheme,即使在编辑模式下也能正常工作

 cell.selectionStyle = .gray cell.selectedBackgroundView = { let colorView = UIView() colorView.backgroundColor = UIColor.black.withAlphaComponent(0.0) //change the alpha value or color to match with you UI/UX return colorView }() 

最好的方法是:

 cell.selectionMode = .none