Sobes.tech
Middle

Wie kann man dafür sorgen, dass beim Tippen auf eine Spalte die anderen nicht hervorgehoben werden?

sobes.tech KI

Antwort von AI

Es ist möglich, eine benutzerdefinierte UITableViewCell zu erstellen und die Methoden zur Steuerung des Auswahlszustands zu überschreiben.

Hier ein Beispiel:

import UIKit

class CustomCell: UITableViewCell {

    override func setSelected(_ selected: Bool, animated: Bool) {
        // Super.setSelected nicht aufrufen
        // Das Erscheinungsbild bei Bedarf selbst verwalten
    }

    override func setHighlighted(_ highlighted: Bool, animated: Bool) {
        // Super.setHighlighted nicht aufrufen
        // Das Erscheinungsbild bei Bedarf selbst verwalten
    }
}

In tableView(_:cellForRowAt:) sollte diese benutzerdefinierte Klasse verwendet werden:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as? CustomCell else {
        fatalError("Die Zelle in der Warteschlange ist keine Instanz von CustomCell.")
    }
    // Zellenkonfiguration
    return cell
}

Außerdem kann UITableViewCell.selectionStyle auf .none gesetzt werden:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CellIdentifier", for: indexPath)
    cell.selectionStyle = .none // Deaktiviert die Standard-Hervorhebung beim Tippen
    // Zellenkonfiguration
    return cell
}