Middle
Cum să faci ca atunci când atingi o coloană, celelalte să nu fie evidențiate?
sobes.tech AI
Răspuns de la AI
Se poate crea o UITableViewCell personalizată și suprascrie metodele pentru a gestiona starea de selecție.
Iată un exemplu:
import UIKit
class CustomCell: UITableViewCell {
override func setSelected(_ selected: Bool, animated: Bool) {
// Nu apelați super.setSelected
// Gestionați aspectul singur, dacă este necesar
}
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
// Nu apelați super.setHighlighted
// Gestionați aspectul singur, dacă este necesar
}
}
În tableView(_:cellForRowAt:), trebuie să folosiți această clasă personalizată:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as? CustomCell else {
fatalError("Celula din coadă nu este o instanță de CustomCell.")
}
// Configurarea celulei
return cell
}
De asemenea, puteți seta UITableViewCell.selectionStyle la .none:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CellIdentifier", for: indexPath)
cell.selectionStyle = .none // Dezactivează evidențierea standard la atingere
// Configurarea celulei
return cell
}