Pregunta

Si tengo un UITableViewCell personalizado que no usa la textLabel integrada en la celda, sino que hace su propio dibujo, ¿cómo puedo cambiar la apariencia de la contentView en la selección, como ocurre automáticamente con el texto predeterminado (personalizable al configurar selectedTextColor: )?

Si cambio tableView: willSelectRowAtIndexPath: , entonces solo se actualiza cuando el fondo de selección azul está arriba, pero no mientras esté animando, como quiero.

¿Fue útil?

Solución

Simplemente no subclasifique UITableViewCell y use el comportamiento predeterminado. Puede personalizar completamente una celda sin ninguna subclase.

Lea este artículo para obtener más detalles.

Otros consejos

Agregue este código en el método cellForRowAtIndexPath de su vista de tabla y solo cambie el color esperado para el estilo de selección 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;
   //-------------------------------------------------------------------------

Si ha subclasificado un UITableViewCell, puede personalizar los elementos de la celda anulando lo siguiente:

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
    if(highlighted) {
        self.backgroundColor = [UIColor redColor];
    } else {
        self.backgroundColor = [UIColor clearColor];
    }

    [super setHighlighted:highlighted animated:animated];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top