2010-01-23 12 views
5

que tienen la costumbre UITableViewCell con un UILabel y una UITextView en ella.UITextView highlightTextColor o una opción similar?

Quiero el texto de ambos aparezca blanca cuando el usuario pone de relieve la UITableViewCell. Obviamente, es muy simple configurar el highlightedTextColor del UILabel, pero el UITextView no parece tener ningún tipo de propiedad similar. ¿Tendré que cambiar manualmente el color del UITextView cada vez que la celda se resalte o no, o hay una manera más fácil de lograr esto?

Gracias!

Respuesta

9

Lo encontré y fue mucho más fácil de lo que pensaba. Solo necesita usar el método UITableViewCellsetHighlighted.

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { 
    [super setHighlighted:highlighted animated:animated]; 

    if (highlighted) { 
     [self.myTextView setTextColor:[UIColor whiteColor]]; 
    } else { 
     [self.myTextView setTextColor:[UIColor blackColor]]; 
    } 

} 
+0

Para evitar que las filas no seleccionables cambien el color del texto, modifique a: if (resaltado && (self.selectionStyle! = UITableViewCellSelectionStyleNone)) – capikaw

+0

Esto se trabajó solo para la primera y la última fila ¿me puede decir por qué? –

+0

obsoleto, creo – Esqarrouth

2

La solución publicada por el autor es la mitad adecuada para mi situación. La necesidad de tener en cuenta que los siguientes eventos ocurren:

  1. presione hacia abajo -> setHighlighted: SÍ animada: se llama
  2. presione hacia arriba -> setHighlighted: NO animada se llama
  3. selección del conjunto - > setSelected: SÍ animado se llama

Sabiendo esto, y dependiendo de cómo desea que el TableCell para mirar cuando highighted vs cuando se seleccione determinará si es necesario implementar setHighlighted: animados :, setSelected: animación: o los dos métodos .

Por el aspecto que quiero, tengo que aplicar ambos métodos.

Cuestiones relacionadas