2016-08-25 1 views
1

I UItablview mit benutzerdefinierten Zelle habe ich brauche einen Etikettenhintergrundfarbe, wenn wählen Sie diese Zeile zu ändern, aber das Etikett Farbe wiederholt wird, wenn nach unten scrollenrasche Änderung Etikett auf UITableViewCell Hintergrundfarbe

enter image description here

+0

Könnten Sie bitte zeigen, was Sie ausprobiert haben? Bitte nehmen Sie sich etwas Zeit, um folgendes zu lesen: [ask] –

+0

Sie verwenden die Zelle erneut, das ist der Grund für die geänderte Hintergrundfarbe des Labels. Sie müssen den cellForRowAtIndexPath-Code anzeigen. –

+0

Die Zelle wird in der benutzerdefinierten Zellklasse ausgewählt, so dass sie eine Farbe hat, wenn ich die + - Taste wähle. Wie kann ich mit cellForRowAtIndexPath die Farbe aktualisieren? –

Antwort

2

Sie Unterklasse könnte Ihre Zelle so (und cellForRow ist dann nicht verantwortlich für die Aktualisierung der Farbe, nur für die Einstellung der Standardfarbe).

class YourTableViewCellClass: UITableViewCell { 

    @IBOutlet weak var yourLabel: UILabel! 

    override func setSelected(_ selected: Bool, animated: Bool) { 
    if(selected) { 

     self.contentView.backgroundColor = UIColor.red //or what you want as your cell bg color 
     self.yourLabel.backgroundColor = UIColor.green //or what you want 

    } else { 

     self.contentView.backgroundColor = UIColor.white //or what you want as your cell bg color 
     self.yourLabel.backgroundColor = UIColor.red //or what you want 
    } 
} } 
1

Was ich verstehe, ist, Sie Code in didSelectRow Methode von Tableview setzen die Farbe zu ändern, aber es zeigt vorherige Farbe beim Scrollen.

Also müssen Sie Bedingung in CellForRow-Methode auch z.

if(condition) 
{ 
lbl.textcolor = x 
} 
else 
{ 
lbl.textcolor = y 
} 
Verwandte Themen