Color de fuente de selección de celda de vista de tabla personalizada

Tengo una UITableViewCell personalizada. Tiene 3 tags personalizadas en su interior con text personalizado.

Cuando toco la celda, quiero que el color de text de todas las tags se vuelva blanco. al igual que el comportamiento de la aplicación de correo electrónico UITableViewCell .

Para eso, escribí esto en la class de celda personalizada.

 - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state if (self.selected) { _subjectLabel.textColor = [UIColor whiteColor]; _messageLabel.textColor = [UIColor whiteColor]; _usernameLabel.textColor = [UIColor whiteColor]; }else { _subjectLabel.textColor = [UIColor blackColor]; _messageLabel.textColor = [UIColor grayColor]; _usernameLabel.textColor = [UIColor blackColor]; } } 

Pude getlo Pero no es tan fácil como en la aplicación de correo electrónico. El color cambia solo después de un pequeño retraso. Qué método de UITableViewCell debería anular para poner este código. Conozco las opciones a continuación, pero no dan el comportamiento a tags personalizadas en la celda personalizada.

 typedef enum { UITableViewCellSelectionStyleNone, UITableViewCellSelectionStyleBlue, UITableViewCellSelectionStyleGray } UITableViewCellSelectionStyle; 

Establezca la label highlightedTextColor y todo esto se hará automáticamente. No deberías tener que hacer nada especial en setSelected en absoluto.

p.ej

 _subjectLabel.highlightedTextColor = [UIColor whiteColor]; 

Cuando seleccionamos cualquier celda de UITableView , -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath método -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath llamado inmediatamente, puede usar esto.