Sobes.tech
Middle

Hogyan lehet elérni, hogy egy oszlopra koppintva a többi ne legyen kiemelve?

sobes.tech MI

Válasz az MI-től

Egyéni UITableViewCell hozható létre, és felülírhatja a módszereket a kiválasztási állapot kezeléséhez.

Íme egy példa:

import UIKit

class CustomCell: UITableViewCell {

    override func setSelected(_ selected: Bool, animated: Bool) {
        // Ne hívja meg a super.setSelected
        // Szükség szerint kezelje a megjelenést
    }

    override func setHighlighted(_ highlighted: Bool, animated: Bool) {
        // Ne hívja meg a super.setHighlighted
        // Szükség szerint kezelje a megjelenést
    }
}

A tableView(_:cellForRowAt:)-ben ezt az egyéni osztályt kell használni:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as? CustomCell else {
        fatalError("A sorban lévő cella nem CustomCell példány.")
    }
    // Cella beállítása
    return cell
}

Továbbá beállíthatja a UITableViewCell.selectionStyle értékét .none-ra:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CellIdentifier", for: indexPath)
    cell.selectionStyle = .none // Kikapcsolja az alapértelmezett kiemelést
    // Cella beállítása
    return cell
}