2009-06-22 7 views
13

Digamos que mi UISegmentedControl tiene 8 segmentos numerados. Me gustaría que el usuario pueda activar 2, 3 o más de ellos a la vez. Alcelos. Esencialmente como un bits en un byte. es posible? Creo que está en Mac OS X normal, pero parece que no puedo encontrar la forma de hacerlo en el SDK de iPhone.¿Cómo puedo habilitar múltiples segmentos de un UISegmentedControl para ser seleccionado?

Si tengo que simular esta poniendo botones en un punto de vista, ¿hay alguna manera de hacer lo siguiente:

  1. Ronda de las esquinas de la vista para que se vea como el "bar" UISegmentedControl estilo?
  2. ¿Usa los fondos incorporados que tiene el estilo "barra" en los botones?
  3. ¿Le da a los botones una sombra como la que tiene todo el estilo de "barra"? (no el texto)

Respuesta

8

Esto no es posible con UIKit. Recomendaría crear un control personalizado o una matriz de controles UISwitch, que represente cada una de las opciones en su UISegmentedControl.

2

Creo que la manera más simple es crear su propio control segmentado con UIButton.

Marco

+3

Una forma de hacer esto, que he hecho al enviar aplicaciones, es usar un UILabel con bordes redondeados y poner UIButtons rectangulares dentro. De esta forma puede obtener los bordes redondeados para el control combinado. Disfrutar. –

1

Parece que hay una forma de hacer esto en XCode ahora. En el Inspector de Atributos, hay una sección con Segmento, Título, Imagen, Comportamiento. Las opciones de comportamiento son "Activado" y "Seleccionado". Puede seleccionar "Seleccionado" para múltiples segmentos.

+9

No creo que esto funcione. En Xcode cuando selecciono "Seleccionado" para un segmento, todos los otros segmentos se vuelven no seleccionados. Además, los métodos para UISegmentedControl incluyen setEnabled: forSegmentAtIndex pero no setSelected: forSegmentAtIndex (que sería útil). Estoy tratando de hacer lo mismo que el OP y parece que necesito crear un control personalizado. Es irónico ya que los botones de ayuda en la parte superior de Xcode son exactamente lo que estoy buscando (sin embargo, la aplicación Mac). –

0

le recomiendo que pruebe https://github.com/tayhalla/THSegmentedControl
es una subclase real de UISegmentedControl por lo que encaja muy bien con el constructor de interfaz y todo.

+0

Es una subclase de 'UIControl' no' UISegmentedControl ' –

6

Este es el mejor control personalizado que he encontrado que permite múltiples segmentos de ser seleccionados al mismo tiempo:

https://github.com/yonat/MultiSelectSegmentedControl

Ésta es una subclase de UISegmentedControl, que es conveniente. He aquí bifurcada:

https://github.com/stewartmacdonald/MultiSelectSegmentedControl

y añadido algunos ejemplos de código a la Léeme y añadí un método que le permite obtener una NSArray de los títulos de todos los segmentos seleccionados.

+0

' MultiSelectSegmentedControl' es muy buena. Extiende 'UISegmentedControl' para que todos sus métodos estén disponibles. –

Cuestiones relacionadas