Legen Sie die Hintergrundfarbe von UITableViewCell fest

8

Ich habe mich nach einer Lösung umgesehen, um die Hintergrundfarbe von accessoryView auf die gleiche Hintergrundfarbe wie die contentView der Zelle zu setzen.

%Vor%

Es gibt eine Lösung, die funktioniert, aber ich lasse nur eine Farbe für alle Zellen verwenden.

%Vor%

Ist die einzige Lösung, nicht das AccessoryView zu verwenden und stattdessen ein Bild zu verwenden?

Danke!

    
Silversnail 11.07.2011, 11:42
quelle

6 Antworten

18

Ich habe auch eine Weile mit diesem Problem gekämpft und habe versucht, mit dem Accessoire ein benutzerdefiniertes Bild zu erstellen. Aber ich habe gerade diese Lösung gefunden, die gut funktioniert und kein benutzerdefiniertes Bild erfordert. Der Trick besteht darin, die backgroundView-Farbe der Zelle und nicht die backgroundColor zu ändern.

%Vor%

Sie müssen die Hintergrundfarben accessoireView oder contentView nicht ändern. Sie werden automatisch folgen.

Hinweis für 2014. Sehr typisch werden Sie verwenden - (void) setSelected: (BOOL) ausgewählt animiert: (BOOL) animiert

Sie hätten also eine benutzerdefinierte Zellenklasse, und Sie würden die Farben für das normale / ausgewählte so einstellen ...

%Vor%

hoffe es hilft jemandem.

    
Sheila Santos 22.02.2012, 21:00
quelle
26
%Vor%

Mit dieser UITableViewDelegate -Methode können Sie die Farbe von Zellen auf verschiedene Farben einstellen. Beachten Sie, dass Apple Ihnen ausdrücklich rät, Änderungen an der Eigenschaft backgroundColor innerhalb der Methode tableView:willDisplayCell:ForRowAtIndexPath: in Die Dokumente , die angeben:

  

Wenn Sie die Hintergrundfarbe einer Zelle ändern möchten, tun Sie dies in der TableView: WillDisplayCell: forRowAtIndexPath: Methode Ihrer Tabellenansicht Delegate

Tatsächlich hätten Änderungen an der Eigenschaft von iOS 6 (wie die tableView:cellForRowAtIndexPath: -Methode) in iOS 6 keinerlei Auswirkungen. Das scheint in iOS 7 nicht mehr der Fall zu sein, aber Apples Ratschlag, die Eigenschaft innerhalb von tableView:willDisplayCell:ForRowAtIndexPath: zu ändern, bleibt (ohne jede Erklärung).

Führen Sie für abwechselnde Farben etwas wie dieses Beispiel aus:

%Vor%     
Keller 11.07.2011 12:06
quelle
7

Das hat für mich funktioniert:

%Vor%     
Oliver Pearmain 11.02.2013 14:30
quelle
2

Für alle Linien mit der gleichen Farbe

%Vor%

Für 2 Farben

%Vor%     
Claudia Mardegan 13.03.2014 00:55
quelle
0

Für alle anderen, die darauf stolpern und ihren UITableViewCell Hintergrund auf ein Muster oder eine Textur und nicht auf eine feste Farbe setzen möchten, können Sie das folgendermaßen tun:

%Vor%     
Sam 27.01.2013 21:45
quelle
-1

Die beste Option, um unterschiedliche Hintergründe zu haben und was nicht, wäre wahrscheinlich eine eigene TableViewCell-Implementierung, in der Sie die Logik so platzieren können, dass sie basierend auf Inhalt oder Index usw. zeigt.

    
ophychius 11.07.2011 12:09
quelle

Tags und Links