禁用uitableview突出显示,但允许select单个单元格
当你点击一个单元格的行被选中,并突出显示。现在我想要做的是禁用突出显示,但允许select。是否有解决方法。有问题的答案,但它禁用select和突出显示。
您可以将单元格的select样式设置为Storyboard中的“无”:
或从代码:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
对于Swift 3及以上版本:
cell.selectionStyle = UITableViewCellSelectionStyle.none
将UITableViewCell
的selectedBackgroundView
颜色更改为透明。
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