colore di selezione per un UITableViewCell
-
05-07-2019 - |
Domanda
Se ho un UITableViewCell
personalizzato che non usa il textLabel
incorporato nella cella ma invece fa il suo disegno, come posso cambiare l'aspetto del contentView
sulla selezione, come fa automaticamente per il testo predefinito (personalizzabile impostando selectedTextColor:
)?
Se cambio tableView: willSelectRowAtIndexPath:
, si aggiorna solo dopo che lo sfondo di selezione blu è attivo, ma non mentre si anima, come voglio.
Soluzione
Basta non sottoclassare UITableViewCell e usare il comportamento predefinito. Puoi personalizzare completamente una cella senza alcuna sottoclasse.
Leggi questo articolo per maggiori dettagli.
Altri suggerimenti
Aggiungi questo codice nel tuo metodo tableview cellForRowAtIndexPath e modifica il colore previsto per lo stile di selezione UITableViewCell.
//-------------------------------------------------------------------------
//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;
//-------------------------------------------------------------------------
Se hai sottoclassato un UITableViewCell, puoi personalizzare gli elementi della cella sovrascrivendo quanto segue:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
if(highlighted) {
self.backgroundColor = [UIColor redColor];
} else {
self.backgroundColor = [UIColor clearColor];
}
[super setHighlighted:highlighted animated:animated];
}