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.

È stato utile?

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];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top