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 // Απενεργοποιεί το τυπικό highlight κατά το πάτημα
    // Ρύθμιση κελιού
    return cell
}