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
}