Middle
Comment faire en sorte que lorsque vous touchez une colonne, les autres ne soient pas mises en surbrillance?
sobes.tech IA
Réponse de l'IA
Il est possible de créer une UITableViewCell personnalisée et de redéfinir les méthodes pour gérer l'état de sélection.
Voici un exemple :
import UIKit
class CustomCell: UITableViewCell {
override func setSelected(_ selected: Bool, animated: Bool) {
// Ne pas appeler super.setSelected
// Gérer l'apparence soi-même si nécessaire
}
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
// Ne pas appeler super.setHighlighted
// Gérer l'apparence soi-même si nécessaire
}
}
Dans tableView(_:cellForRowAt:), utilisez cette classe personnalisée :
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as? CustomCell else {
fatalError("La cellule en file d'attente n'est pas une instance de CustomCell.")
}
// Configuration de la cellule
return cell
}
Vous pouvez également définir UITableViewCell.selectionStyle sur .none :
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CellIdentifier", for: indexPath)
cell.selectionStyle = .none // Désactive le surlignage standard lors du tap
// Configuration de la cellule
return cell
}