Middle
¿Cómo hacer para que al tocar una columna, las otras no se resalten?
sobes.tech AI
Respuesta de la IA
Se puede crear una UITableViewCell personalizada y sobrescribir los métodos para gestionar el estado de selección.
Aquí un ejemplo:
import UIKit
class CustomCell: UITableViewCell {
override func setSelected(_ selected: Bool, animated: Bool) {
// No llamamos a super.setSelected
// Gestionamos la apariencia por nuestra cuenta, si es necesario
}
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
// No llamamos a super.setHighlighted
// Gestionamos la apariencia por nuestra cuenta, si es necesario
}
}
En tableView(_:cellForRowAt:) debes usar esta clase personalizada:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as? CustomCell else {
fatalError("La celda en cola no es una instancia de CustomCell.")
}
// Configuración de la celda
return cell
}
También puedes establecer UITableViewCell.selectionStyle en .none:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CellIdentifier", for: indexPath)
cell.selectionStyle = .none // Desactiva el resaltado estándar al tocar
// Configuración de la celda
return cell
}