Estoy usando la nueva API UIAppearance
en iOS 5 para darle un estilo a UISegmentedControl
con gráficos personalizados. Necesito poder configurar algunos segmentos para que se deshabiliten a veces durante la ejecución, pero los métodos UIAppearance
no parecen permitirme establecer una imagen de divisor para el estado UIControlStateDisabled
.UISegmentedControl no respeta las imágenes de divisor configuradas para UIControlStateDisabled
estoy llamando:
[[UISegmentedControl appearance] setDividerImage:disabledSelectedImage
forLeftSegmentState:UIControlStateDisabled
rightSegmentState:UIControlStateSelected
barMetrics:UIBarMetricsDefault];
donde disabledSelectedImage
es una imagen de tamaño variable a partir de este recurso:
Sin embargo, cuando me puse el segmento izquierdo estar deshabilitado ([UISegmentedControl setEnabled:forSegmentAtIndex:]
), la resultado es este:
Puede ver claramente que el UISegmentedControl
se ha predeterminado para usar la imagen del divisor UIControlStateNormal
- UIControlStateNormal
.
parece perfectamente feliz para mí Para configurar una imagen de fondo usando UIControlStateDisabled
[[UISegmentedControl appearance] setBackgroundImage:disabledImage
forState:UIControlStateDisabled
barMetrics:UIBarMetricsDefault];
(y respeta la imagen proveo mientras que en el estado desactivado) pero no un divisor de imagen. ¿Alguien ha encontrado esto o ha encontrado una solución?
Parece un error. Creo que deberías presentarlo en bugreport.apple.com. – jfortmann
@jfortmann Creo que tienes razón, he cambiado el flujo por ahora para eliminar segmentos en lugar de deshabilitarlos. Parece que hay bastantes errores en la API 'UIAppearance' para' UISegmentedControl' –
¡Gracias por archivar! – jfortmann