Ich frage mich, wie ich die blaue Markierungs- / Auswahlfarbe von a ändern UITableViewCell
kann. Irgendwelche Ideen?
ios
uitableview
Thomas Joos
quelle
quelle
selectedBackgroundView
sie dann einfach nie angezeigt wird. Erst nachdem "Auswahl" auf Standard gesetzt wurde, wird dasselectedBackgroundView
angezeigt. Getestet auf iOS 6 und 7.cell.selectedBackgroundView = [UIView new];
und Sie legen die gewünschte Farbe fest:cell.selectedBackgroundView.backgroundColor = [UIColor colorWithHex:@"ecf2f5" andAlpha:1];
Zonble hat bereits eine hervorragende Antwort gegeben. Ich dachte, es könnte nützlich sein, ein Kurzcode-Snippet zum Hinzufügen eines
UIView
zu der Tabellenansichtszelle hinzuzufügen , das als ausgewählte Hintergrundansicht angezeigt wird.UITableViewCell
selectedBackgroundView
so eingestellt,UIView
dass sie mit der von mir gewählten Hintergrundfarbe erstellt wurdeDas hat bei mir gut funktioniert. Danke für den Tipp Zonble.
quelle
UITableViewCell
hat drei Standardauswahlstile: -Die Implementierung ist wie folgt: -
quelle
Verwenden Sie dies in Swift in
cellForRowAtIndexPath
Wenn Sie möchten, dass Ihre Auswahlfarbe in allen Farben gleich ist
UITableViewCell
, verwenden Sie diese inAppDelegate
.quelle
Wenn Sie es App-weit ändern möchten, können Sie die Logik Ihrem App-Delegaten hinzufügen
quelle
Der Vollständigkeit halber: Wenn Sie eine eigene Unterklasse von erstellt haben
UITableViewCell
, können Sie die- (void)setSelected:(BOOL)selected animated:(BOOL)animated
Methode implementieren und die Hintergrundfarbe einer Ansicht festlegen, die Sie in der Inhaltsansicht hinzugefügt haben. (wenn dies der Fall ist) oder der contentView selbst (wenn sie nicht von einer Ihrer eigenen Ansichten abgedeckt wird.(nicht verwendet? um die geringe Breite der Quellcode-DIVs anzupassen :)
Dieser Ansatz hat zwei Vorteile gegenüber der Verwendung von selectedBackgroundView: Er benötigt weniger Speicher und etwas weniger CPU, was Sie nicht einmal bemerken würden, wenn Sie nicht Hunderte von Zellen anzeigen.
quelle
selectedBackgroundView
dem zu Beginn der Methode addself. selectedBackgroundView = [UIView new];
selectedBackgroundView
Eigenschaft festgelegt wurde.Ich muss den Auswahlstil auf einstellen, damit die
UITableViewCellSelectionStyleDefault
benutzerdefinierte Hintergrundfarbe funktioniert. Bei anderen Stilen wird die benutzerdefinierte Hintergrundfarbe ignoriert. Getestet auf iOS 8.Der vollständige Code für die Zelle lautet wie folgt:
quelle
Basierend auf der Antwort des @ Benutzers können Sie diese Erweiterung einfach an einer beliebigen Stelle in Ihrem App-Code hinzufügen und Ihre Auswahlfarbe direkt im Storyboard-Editor für jede Zelle Ihrer App festlegen:
quelle
Setzen Sie in Ihrem Storyboard die Klasse Ihrer UITableViewCell auf UIDesignableTableViewCell. Im Attributinspektor können Sie die ausgewählte Farbe Ihrer Zelle in eine beliebige Farbe ändern.
Sie können dies für alle Ihre Zellen verwenden. So sieht Ihr Attributinspektor aus.
quelle
UIColor.clear
nichtUIColor.clearColor()
. Ich bin mir nicht sicher, ob dies auch eine Änderung in Swift ist, aber es funktioniert auch ohne@IBDesignable
.Swift 3.0 / 4.0
Wenn Sie eine eigene benutzerdefinierte Zelle erstellt haben, können Sie die Auswahlfarbe
awakeFromNib()
für alle Zellen ändern :quelle
1- Fügen Sie der Inhaltsansicht Ihrer Zelle eine Ansicht hinzu.
2- Klicken Sie mit der rechten Maustaste auf Ihre Zelle.
3- Machen Sie die hinzugefügte Ansicht als "selectedBackgroundView"
quelle