Sobes.tech
Middle

Как да направим така, че при докосване на една колона, другите да не се подчертават?

sobes.tech AI

Отговор от AI

Можете да създадете персонализирана UITableViewCell и да презапишете методите за управление на състоянието на избора.

Ето пример:

import UIKit

class CustomCell: UITableViewCell {

    override func setSelected(_ selected: Bool, animated: Bool) {
        // Не извиквайте super.setSelected
        // Управлявайте външния вид сами, ако е необходимо
    }

    override func setHighlighted(_ highlighted: Bool, animated: Bool) {
        // Не извиквайте super.setHighlighted
        // Управлявайте външния вид сами, ако е необходимо
    }
}

В tableView(_:cellForRowAt:) трябва да използвате този персонализиран клас:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as? CustomCell else {
        fatalError("Клетката в опашката не е инстанция на CustomCell.")
    }
    // Настройка на клетката
    return cell
}

Може също да зададете UITableViewCell.selectionStyle на .none:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CellIdentifier", for: indexPath)
    cell.selectionStyle = .none // Изключва стандартното подчертаване при докосване
    // Настройка на клетката
    return cell
}