uitableviewcell source number example data ios objective-c uitableview

ios - source - uitableviewcell swift 3



deshabilite el resaltado de uitableview pero permita la selección de celdas individuales (12)

cuando tocas una celda, la fila se selecciona y resalta. Ahora lo que quiero hacer es deshabilitar el resaltado pero permitir la selección. Hay una forma de evitarlo. Hay una pregunta que responde a esto, pero deshabilita tanto la selección como el resaltado.


Aquí está la solución para Swift 3, funciona incluso en modo edición

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 }()


Cambie el color selectedBackgroundView UITableViewCell a transparente.

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

o para establecer una celda específica:

cell.backgroundView = clearView


Intente establecer el estilo de selección de celda en Ninguno -

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Esto resolverá tu problema


Para Swift 3.0 :

cell.selectionStyle = .none


Para Swift 5, la mejor manera es:

cell.selectionStyle = .none


Para agregar un color personalizado, use el siguiente código. Y para hacerlo transparente, use 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)

Si usa un color personalizado y desea darle un aspecto de esquina redondeada, use:

cell.layer.cornerRadius = 8

Además, use esto para una mejor animación y sensación

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


Puede configurar el estilo de selección de la celda en "Ninguno" desde Storyboard:

O del código:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

Para Swift 3:

cell.selectionStyle = UITableViewCellSelectionStyle.none

Para Swift 4 y superior:

cell.selectionStyle = .none


Puede establecer la propiedad de selección de la celda en el guión gráfico


Para Objc:

[cell setSelectionStyle: UITableViewCellSelectionStyleNone];

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


Para Swift:

UITableViewCell.selectionStyle = UITableViewCellSelectionStyle.None;

O cuando subclases una celda en Swift:

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


Para aquellos que buscan una forma programática en Swift 3

cell.selectionStyle = UITableViewCellSelectionStyle.none


en Swift 3

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