Comportamiento UISegmentedControl

votos
4

Una pregunta rápida sobre la clase UISegmentedControl en el iPhone.

Con suerte, algunos pueden haber notado cómo en su estado predeterminado con 2 segmentos, el control segmentado aún se alternará incluso si el usuario toca un segmento que está seleccionado actualmente.

He visto UISegmentedControls en aplicaciones que niegan ese comportamiento y no se alternan cuando el usuario presiona un segmento seleccionado. A saber, la aplicación iTunes Store de Apple.

¿Hay alguna manera simple de evitar este comportamiento que estoy pasando por alto, o debo escribir algo de lógica en el valor cambiado?

Intenté inhabilitar los segmentos actualmente seleccionados y habilitarlos no seleccionados, pero esto parece cambiar la apariencia del control cuando no quiero que lo haga.

¿Algunas ideas?

Publicado el 11/03/2009 a las 10:58
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
8

Mire en el archivo de encabezado UISegmentedControl.h (una forma fácil es hacer doble clic en "UISegmentedControl" en XCode con Command presionado).

Allí verás una cantidad de elementos en una estructura _segmentedControlFlags . Si crea una categoría en UISegmentedControl, puede manipular cualquiera de esos elementos, incluido dontAlwaysToggleForTwoSegments que, como podrá adivinar por su nombre, es lo que está buscando.

Dado que esto está documentado en el encabezado de la API (aunque no en la documentación real), debería ser bastante seguro de usar.

Respondida el 12/03/2009 a las 00:23
fuente por usuario

votos
4

En 3.0, " _segmentedControlFlags " se ha cambiado a la " momentánea propiedad", que todavía se pueden encontrar en el UISegmentedControl.h archivo de cabecera.

Respondida el 20/07/2009 a las 21:59
fuente por usuario

votos
4

Este comportamiento predeterminado ha sido cambiado en la API 3.0.

Respondida el 18/04/2009 a las 03:20
fuente por usuario

votos
1

El acceso a _segmentedControlFlags a través de una Categoría se considera como el uso de una API privada y, por lo tanto, una violación del Acuerdo de Licencia por parte de Apple, como tuve que aprender hoy. Hasta ahora, pensé, las categorías son una característica del lenguaje para arreglar el diseño de clase horrible de otra persona ...

Respondida el 09/12/2009 a las 04:14
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more