当你点击一个单元格时,行被选中并突出显示。现在我要做的是禁用突出显示但允许选择。是否有办法绕过它。有问题可以解决这个问题,但它会禁用这两个选项并突出显示。
答案 0 :(得分:153)
您可以将单元格的选择样式设置为"无"来自故事板:
或者来自代码:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
对于Swift 3:
cell.selectionStyle = UITableViewCellSelectionStyle.none
对于Swift 4&以上:
cell.selectionStyle = .none
答案 1 :(得分:23)
将UITableViewCell
的{{1}}颜色更改为透明。
selectedBackgroundView
或为特定单元格设置:
let clearView = UIView()
clearView.backgroundColor = UIColor.clearColor() // Whatever color you like
UITableViewCell.appearance().selectedBackgroundView = clearView
答案 2 :(得分:8)
尝试将单元格选择样式设置为无 -
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
这将解决您的问题
答案 3 :(得分:8)
Swift 3.0 :
cell.selectionStyle = .none
答案 4 :(得分:6)
对于Swift:
UITableViewCell.selectionStyle = UITableViewCellSelectionStyle.None;
或者当你在swift中继承一个单元格时:
class CustomCell : UITableViewCell {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
selectionStyle = .None
}
}
答案 5 :(得分:4)
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
答案 6 :(得分:1)
对于那些在Swift 3中寻找程序化方式的人
cell.selectionStyle = UITableViewCellSelectionStyle.none
答案 7 :(得分:1)
答案 8 :(得分:0)
对于Objc:
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
- (void)viewDidLoad {
[super viewDidLoad];
_tableView.allowsSelection = YES;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
.. .. .. ..
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
. . . . ..
}
答案 9 :(得分:0)
要添加自定义颜色,请使用以下代码。并使其透明化使用alpha: 0.0
cell.selectedBackgroundView = UIView(frame: CGRect.zero)
cell.selectedBackgroundView?.backgroundColor = UIColor(red:0.27, green:0.71, blue:0.73, alpha:1.0)
如果你使用自定义颜色并希望给它圆角看,请使用:
cell.layer.cornerRadius = 8
此外,使用它可以获得更好的动画效果
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
答案 10 :(得分:-1)
对于 Swift 5 ,最好的方法是:
cell.selectionStyle = .none
答案 11 :(得分:-1)
这是swift 3的解决方案,即使在编辑模式下也能正常工作
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
}()