Auswahl Farbe für eine UITableViewCell
-
05-07-2019 - |
Frage
Wenn ich eine benutzerdefinierte UITableViewCell
haben, die nicht die textLabel
in die Zelle eingebaut nicht verwendet, sondern hat seine eigene Zeichnung, wie kann ich das Aussehen des contentView
auf getroffene Auswahl zu ändern, wie es automatisch für den Standardtext tut (anpassbar durch die selectedTextColor:
Einstellung)?
Wenn ich tableView:willSelectRowAtIndexPath:
ändern, dann ist es nur Updates nach dem blauen Auswahl Hintergrund ist, aber nicht, während es Animieren, wie ich will.
Lösung
Nur nicht UITableViewCell Unterklasse und das Standardverhalten verwenden. Sie können vollständig eine Zelle anpassen, ohne Subclassing.
Lesen Sie diesem Artikel für weitere Details.
Andere Tipps
Fügen Sie diesen Code in Ihren Tableview cellForRowAtIndexPath Methode und nur erwartete Farbe für Stil UITableViewCell getroffene Auswahl ändern.
//-------------------------------------------------------------------------
//background selected view
UIView *viwSelectedBackgroundView=[[UIView alloc]init];
viwSelectedBackgroundView.backgroundColor=[UIColor colorWithRed:124.0/255.0 green:202.0/255.0 blue:227.0/255.0 alpha:1.0];
cell.selectedBackgroundView=viwSelectedBackgroundView;
//-------------------------------------------------------------------------
Wenn Sie eine UITableViewCell subclassed haben, dann können Sie die Elemente der Zelle anpassen durch zwingende die folgenden:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
if(highlighted) {
self.backgroundColor = [UIColor redColor];
} else {
self.backgroundColor = [UIColor clearColor];
}
[super setHighlighted:highlighted animated:animated];
}