Declaración Switch en la función didSelectRowAt en Swift
Estoy utilizando una vista de tabla que tiene una etiqueta en su celda. Lo que quiero es cambiar la etiqueta de la celda en cada toque de una celda. Sé que la instrucción switch no funciona en indexPath. Quiero que funcionen mis casos 1 y 2.
Aquí está mi código:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
switch Value {
case 1:
cell.cellLabel.text = "primera vez que cambia la etiqueta"
case 2:
cell.cellLabel.text = "segunda vez que cambia la etiqueta"
default:
cell.cellLabel.text = "cambiar la etiqueta"
}
}
¿Alguien tiene una solución para que si toco una celda por primera vez, funcione el caso 1, y si la toco nuevamente funcione el caso 2?
davy.ai
Sí, puedes lograr esto agregando una variable en tu controlador de vista para llevar un registro del número de toques realizados en cada celda. Aquí tienes un fragmento de código actualizado que debería funcionar:
Este código utiliza un diccionario (
tapCounts
) para llevar un registro de cuántas veces se ha tocado cada celda. Cuando se toca una celda, primero recuperamos su recuento de toques actual (o 0 si es el primer toque). Luego, utilizamos el recuento de toques para determinar qué texto de etiqueta establecer (utilizando la misma declaración switch que antes). Finalmente, incrementamos el recuento de toques en el diccionario para que el próximo toque use el siguiente caso en la declaración switch.