2011-08-29 25 views
10

He creado una UITableView con la personalización de una TableCell, generalmente siguiendo este tutorial;UITableView - Resaltar celda seleccionada [iOS]

http://www.theappcodeblog.com/?p=353

He personalizado a mis necesidades y se ve fantástico. Sin embargo, cuando selecciono una fila, resalta esa fila cambiando todo azul. Este resaltado cubre toda la celda y anula el contenido, formando una gran caja azul que se ve desagradable. He probado los resaltar opciones alternas de

Obviamente si es seleccionado como el gris, el mismo comportamiento ocurre pero con un cuadro feo gris. "Ninguno" es la opción deseable en el momento, pero no proporciona una buena experiencia para mis usuarios, ya que me gustaría dar alguna indicación de que han seleccionado esa fila.

¿Alguien puede sugerir una manera de mostrar que la fila está resaltada, pero aún mostrar el texto debajo? ¿Semi opacidad?

Gracias

Respuesta

11

Tal vez sea porque su código de ejemplo es la creación:

artistLabel.highlightedTextColor = [UIColor clearColor];.

Hará que el color del texto del artistaLabel se vuelva transparente cuando se resalte.

De la causa puede establecer su propio color a la propiedad highlightedTextColor de las etiquetas, por ejemplo:

[UIColor whiteColor]

+0

Qué idiota absoluta estoy, gracias. Respuesta simple, que funcionó perfectamente. Gracias –

+1

De nada. Si cree que esta respuesta es útil, le agradeceríamos que vote y la seleccione como respuesta correcta. – xuzhe

+0

siempre lo hago. Tengo 100% de anticipación a la pregunta que hago. Gracias de nuevo. –

4

u puede utilizar ur propia vista de personalización a la selección

aquí tengo vista en color verde . como esto, puede cambiar la personalización que desee en eso.

if (cell == nil) { 

    cell = [[[UITableViewCell alloc] initWithFrame: CGRectZero 
            reuseIdentifier: CellIdentifier] autorelease]; 


    UIView *selectionView = [[UIView alloc]initWithFrame:cell.bounds]; 

    [selectionView setBackgroundColor:[UIColor greenColor]]; 

    cell.selectedBackgroundView = selectionView; 


    [selectionView release]; 

} 
8

UITableView celda seleccionada en color

Disfrute ...

// Image 
UIImage *selectionBackground = [UIImage imageNamed:@"g7.png"]; 
UIImageView *bgview=[[UIImageView alloc] initWithImage:selectionBackground]; 
cell.selectedBackgroundView=bgview; 
[bgview release]; 

o

// Color 
UIView *bgColorView = [[UIView alloc] init]; 
[bgColorView setBackgroundColor:[UIColor brownColor]]; 
[cell setSelectedBackgroundView:bgColorView]; 
[bgColorView release]; 
+0

Cool. Color funciona en iOS 7. – Tom

+0

También recomendaría llamar a [cell setSelectionStyle: UITableViewCellSelectionStyleNone] que impide que la celda del rectángulo blanco en el perímetro cuando se selecciona. –

Cuestiones relacionadas