Entfernen Sie die Zellenmarkierungsfarbe von UITableView


109

Ich möchte die standardmäßige blaue Farbe der Zellenauswahl von uitableview entfernen. Ich möchte dort keine Auswahlfarbe. Ich habe keine benutzerdefinierte Zellenklasse erstellt. Ich passe die Zelle an, indem ich Beschriftungen und Schaltflächen darüber hinzufüge. Ich habe versucht:

cell.selectioncolor = [UIColor clearcolor];

aber es heißt, dass diese Methode veraltet ist.

Antworten:


319
cell.selectionStyle = UITableViewCellSelectionStyleNone;

in Swift 4 aktualisiert

cell.selectionStyle = UITableViewCell.SelectionStyle.none

Oder

cell.selectionStyle = .none

3
Ich habe diesen Code in cellForRowAtIndexPath: behalten. Ist das der genaue Ort, an dem er aufbewahrt werden soll?
Pawriwes

9
@ Pawriwes, ja. Wenn ich mich richtig erinnere, können Sie diese Eigenschaft auch in XIB der Zelle festlegen, wenn Sie Ihre Zelle mit Interface Builder
Vladimir

4
Wenn ich dies tue, wähle ich beim Bearbeiten nicht die Zelle aus :(
AsifHabib

54

Wählen Sie dies in StoryboardoderXIB


Geben Sie hier die Bildbeschreibung ein


7
zusätzliche, müssen Sie „Table View überprüfen Zelle “ , wenn Sie in „Tabellenansicht“ ändern , als Sie keine Zellen auszuwählen.
Kernelzero

2
@Pulkit das ist nicht wahr. Dadurch wird nur der Auswahlstatus der Zelle deaktiviert. Dies hat nichts mit den darin angezeigten Daten oder der Interaktion zu tun. Stellen Sie sicher, dass Sie alle richtigen Registrierungssätze festgelegt haben und andere Funktionen nicht überschreiben.
Michael

das ist völlig falsch
Fattie

12
// Swift 2.0

cell.selectionStyle = UITableViewCellSelectionStyle.None

5
Oder Sie können den Aufzählungswert direkt verwenden cell.selectionStyle = .None
Steve


6

Ziel c:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

oder

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Swift 4:

self.selectionStyle = UITableViewCellSelectionStyle.none;

Swift 3:

cell.selectionStyle = .none

Swift 2:

cell.selectionStyle = UITableViewCellSelectionStyle.None

Wenn Sie es nur mit Storyboard / Xib ändern möchten, wählen Sie einfach die Zelle aus, in der Sie den "Auswahlstil-Effekt" entfernen möchten, und definieren Sie sie als "Keine". Es wird auch wie Magie funktionieren: D.

Storyboard / Xib


1
Swift 4: cell.selectionStyle = UITableViewCell.SelectionStyle.none
Naval Hasan

5

Das Festlegen des TableView-Auswahlstils auf .nonebeeinträchtigte die Reaktionsfähigkeit und Leistung der Tabellenansicht in meiner App (das didSelectRowAt indexPathTippen wurde verzögert). Meine Lösung für dieses Problem bestand darin, die ausgewählte Hintergrundansicht awakeFromNib()beim ersten Erstellen der Zelle auszublenden :

selectedBackgroundView?.isHidden = true


4

Versuchen Sie dies für schnell

cell?.selectionStyle = UITableViewCellSelectionStyle.None

2

Mach es in der Zelle :

class YourCell:  UITableViewCell {
    
    override func didMoveToSuperview() {
        selectionStyle = .none
    }

    ...
}

So einfach ist das.


0

schnell 5

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
        cell.selectionStyle = .none

        return cell
    }  

0

Die richtige Antwort sollte lauten:

cell.selectedBackgroundView?.backgroundColor = <choose your color>

Der Auswahltyp ist eine andere Eigenschaft, die bei Einstellung auf .nonedas, was Sie möchten, sowie andere unerwünschte Nebenwirkungen erzeugt.

Wenn Sie nicht möchten, dass die Zelle hervorgehoben wird , stellen Sie die Farbe der Hintergrundansicht so ein, wie wenn sie nicht hervorgehoben ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.