¿Color seleccionado de celda UITableView?

Resuelto Mc.Lover asked hace 54 años • 34 respuestas

He creado un personalizado UITableViewCell. La vista de tabla muestra los datos correctamente. En lo que estoy atrapado es cuando el usuario toca la celda de la vista de tabla, entonces quiero mostrar el color de fondo de la celda distinto de los valores predeterminados [color azul] para resaltar la selección de la celda. Utilizo este código pero no pasa nada:

cell.selectedBackgroundView.backgroundColor=[UIColor blackColor];
Mc.Lover avatar Jan 01 '70 08:01 Mc.Lover
Aceptado

No hay necesidad de celdas personalizadas. Si solo deseas cambiar el color seleccionado de la celda, puedes hacer esto:

C objetivo:

UIView *bgColorView = [[UIView alloc] init];
bgColorView.backgroundColor = [UIColor redColor];
[cell setSelectedBackgroundView:bgColorView];

Rápido:

let bgColorView = UIView()
bgColorView.backgroundColor = UIColor.red
cell.selectedBackgroundView = bgColorView
Maciej Swic avatar Mar 04 '2011 18:03 Maciej Swic

Creo que estabas en el camino correcto, pero según la definición de clase para selectedBackgroundView:

El valor predeterminado es nulo para celdas en tablas de estilo simple (UITableViewStylePlain) y no nulo para tablas de grupos de secciones UITableViewStyleGrouped).

Por lo tanto, si está utilizando una tabla de estilo simple, deberá asignar una nueva UIViewque tenga el color de fondo deseado y luego asignarla a selectedBackgroundView.

Alternativamente, si todo lo que deseas es un fondo gris cuando se selecciona la celda, puedes usar esto:

cell.selectionStyle = UITableViewCellSelectionStyleGray;
Andrew Little avatar Jan 08 '2010 02:01 Andrew Little