Sobes.tech
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
}