¿Cómo hago que UITableViewCellAccessoryDisclosureIndicator sea visible en fondo negro?

StackOverflow https://stackoverflow.com/questions/249010

  •  05-07-2019
  •  | 
  •  

Pregunta

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

en este método

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

pero solo puedo verlo cuando selecciono esa celda, de lo contrario no está visible y funciona perfectamente cuando el fondo es blanco. Estoy seguro de que necesito establecer una propiedad, pero no sé qué propiedad debo cambiar para que esto funcione.

gracias de antemano.

saludos.

¿Fue útil?

Solución

Parece que el indicador de revelación es una imagen gris, alfa alta, por lo que superponerla sobre un fondo negro la hace invisible. Si quieres hacer esto, deberás agregar tu propio UIImageView al contentView de la celda.

Otros consejos

Me encontré con este mismo problema, y ??simplemente creé un UIImageView fuera de imageWithName de UIView @ " AccDisclosure.png " utilizando el siguiente gráfico de maqueta apresurada que puede copiar: http://thinkingman.com /db/downloads/AccDisclosure.png (si simplemente hace clic en ese enlace, probablemente no verá nada, ya que es una imagen en blanco con fondo transparente, pero si la guarda y la ve con un fondo oscuro, Veré el alfa).

El siguiente código me permite configurar el color de fondo de la punta de la flecha en una fila de la tabla:

@property (nonatomic,retain) UILabel *backgroundLabel;

UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.backgroundColor = [UIColor orangeColor]; 
self.backgroundLabel = label;
[self.contentView addSubview:label];
[label release];

CGRect labelRect = CGRectOffset(contentRect,0, 0);
labelRect.size.height = contentRect.size.height - 1; // show white line
labelRect.size.width = contentRect.size.width + 50; // cover arrow tip background
backgroundLabel.frame = labelRect;    
backgroundLabel.highlightedTextColor = [UIColor whiteColor];

Hice una solución donde agregué un ImageView con addSubView de la manera normal, con una imagen que no era negra (en mi caso, un círculo gris) en la posición donde aparece el accesorio.

Esto permite ver la flecha y aún tener un color de fondo de celdas de la tabla oscuro / negro.

Tal vez no sea la solución más kosher, pero hace que la flecha esté visible, y recibo notificaciones de clics accesorios sin crear subclases ni escribir mucho código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top