Estoy cargando un archivo de punta personalizado para personalizar las celdas de una UITableView. El plumín personalizado tiene un UILabel al que se hace referencia desde la vista principal por etiqueta. Me gustaría saber si es posible cambiar el color de sombra de UILabel cuando la celda se selecciona con un color diferente para que no se vea como en la captura de pantalla.sombra de UILabel del color seleccionado de la celda personalizada
Respuesta
Usted podría cambiar la etiqueta del color de la sombra en -tableView:willSelectRowAtIndexPath:
en el delegado. Por ejemplo:
-(NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.shadowColor = [UIColor greenColor];
return indexPath;
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.shadowColor = [UIColor redColor];
}
prefiero hacer el cambio de color de la sombra dentro del código TableCell para no contaminar el delegado. Puede reemplazar este método para manejar la situación:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animate
{
UIColor * newShadow = highlighted ? [UIColor clearColor] : [UIColor whiteColor];
nameLabel.shadowColor = newShadow;
[super setHighlighted:highlighted animated:animate];
}
La respuesta simple, al menos para el ejemplo anterior, es no mostrar la sombra en el primer lugar. Como de todos modos no puede ver el blanco sobre blanco, configure shadowColor en -clearColor.
Si realmente necesita una sombra, anular el método -setHighlighted es la mejor solución. Mantiene el código con la celda, que creo que es mejor que tratar de manejarlo desde la vista de tabla.
Tuve el mismo problema y ninguna de las soluciones anteriores funcionó para mí: no quería la subclase UITableViewCell
y también tenía algunos cambios de estado seleccionados/resaltados complicados realizados programáticamente, que no funcionaban bien con las soluciones anteriores .
MySolution:
Lo que hice al final es utilizar un segundo UILabel
debajo de la primaria UILabel
para actuar como una sombra. Para esa 'sombra' UILabel
puede establecer 'Color resaltado' en 'Borrar color'.
Obviamente tiene que actualizar la etiqueta de sombra cada vez que actualiza la etiqueta principal. No es un gran precio a pagar en muchos casos.
Espero que ayude!
- 1. Barra de pestañas iOS personalizada Color seleccionado
- 2. Sombra interior en UILabel
- 3. SVG: color de la sombra
- 4. Color de sombra UICollectionViewCell
- 5. Ajuste Texto de la celda de color
- 6. problemas de color UITableViewCell con tabla personalizada opinión del fondo
- 7. ¿Sombra de caja de CSS alrededor de una forma personalizada?
- 8. cambiando el color del texto de un UILabel
- 9. ¿Cómo cambiar el color del texto seleccionado?
- 10. UILabel Configuración de color de fondo transparente?
- 11. UILabel con esquinas redondeadas, sombra paralela y patrón de fondo
- 12. UILabel - cómo cambiar la posición del texto
- 13. Cambiar el color de la celda JTable
- 14. Cambio del color de fondo de un JToggleButton seleccionado
- 15. ¿Cómo cambiar la fuente UISegmentcontrol y el color del segmento seleccionado?
- 16. la conversión de la sombra del descenso del photoshop en la caja de CSS3 sombra
- 17. Cambiar el color del botón en la celda DataGridView
- 18. Color de fondo del elemento seleccionado en un editable JComboBox
- 19. Cambiar el color del control de segmento seleccionado
- 20. ¿Cómo cambiar el color del código seleccionado (esquema de Vim)?
- 21. ¿Devuelve NSIndexPath desde la celda personalizada? (UITableView)
- 22. Jqgrid establecer color de fondo de celda
- 23. jQuery: Cambiar el color del borde de la celda de una tabla
- 24. UILabel con fuente personalizada erróneamente renderizada
- 25. WPF datagrid Color de la celda según el valor de la celda preivous
- 26. Configuración del color del texto en el elemento de la barra de pestañas seleccionado
- 27. UITableView texto de la celda Color de etiqueta
- 28. Devuelve el color de fondo de la celda seleccionada
- 29. Cambiar el color de sombra de Uoolbar para UIBarButtonItem
- 30. La sombra de la caja de inserción de CSS en la celda de la tabla está mal alineada
Esta respuesta no funciona para el estado de celda resaltada (es decir, si el usuario presiona una celda pero no la suelta). La respuesta de Jason es desafortunadamente la mejor que he visto para lidiar con este caso. Es desafortunado que involucra subclases. Es posible que también deba sobrescribir setSelected: – Prometheus