2009-06-22 5 views
13

Diciamo che il mio UISegmentedControl ha 8 segmenti numerati. Vorrei che l'utente fosse in grado di attivare 2, 3 o più di essi contemporaneamente. Attivarli Essenzialmente come un bit in un byte. È possibile? Credo che sia su Mac OS X normale, ma non riesco a trovare un modo per farlo in iPhone SDK.Come posso abilitare la selezione di più segmenti di un UISegmentedControl?

Se devo simulare questo mettendo pulsanti in una vista, non v'è alcun modo per effettuare le seguenti operazioni:

  1. rotonda gli angoli della vista in modo che sembra che il "bar" UISegmentedControl stile?
  2. Utilizzare gli sfondi incorporati con lo stile "barra" sui pulsanti?
  3. Dai ai pulsanti un'ombra come l'intero stile "barra"? (non il testo)

risposta

8

Questo non è possibile utilizzare UIKit. Suggerirei di creare un controllo personalizzato o una serie di controlli UISwitch, che rappresentano ciascuna delle opzioni in UISegmentedControl.

2

Penso che il modo più semplice sia quello di creare il proprio segmentedcontrol con UIButton.

Marco

+3

Un modo per farlo, che ho fatto nelle app di spedizione, è usare un UILabel con bordi arrotondati e inserire all'interno UIButtons rettangolari. In questo modo puoi ottenere i bordi arrotondati per il controllo combinato. Godere. –

1

Sembra esserci un modo per farlo in XCode ora. Nell'Inspector degli attributi, c'è una sezione con Segmento, Titolo, Immagine, Comportamento. Le opzioni di comportamento sono "Abilitato" e "Selezionato". È possibile selezionare "Selezionato" per più segmenti.

+9

Non penso che funzioni. In Xcode quando seleziono "Selezionato" per un segmento, gli altri segmenti diventano tutti deselezionati. Inoltre i metodi per UISegmentedControl includono setEnabled: forSegmentAtIndex ma non setSelected: forSegmentAtIndex (che sarebbe utile). Sto cercando di fare lo stesso come l'OP e sembra che ho bisogno di creare un controllo personalizzato. Un po 'ironico dato che i pulsanti di supporto nello Xcode in alto sono esattamente ciò per cui sto girando (l'app per Mac però). –

0

vi consiglio di provare https://github.com/tayhalla/THSegmentedControl
è effettivamente una sottoclasse di UISegmentedControl modo che si adatta bene con Interface Builder e tutto.

+0

È una sottoclasse di 'UIControl' non' UISegmentedControl ' –

6

questo è il miglior controllo personalizzato ho trovato che consente a più segmenti da selezionare contemporaneamente:

https://github.com/yonat/MultiSelectSegmentedControl

Questa è una sottoclasse di UISegmentedControl, che è conveniente. Ho biforcato qui:

https://github.com/stewartmacdonald/MultiSelectSegmentedControl

e aggiunto alcuni esempi di codice per il Leggimi e ha aggiunto un metodo che consente di ottenere un NSArray dei titoli di tutti i segmenti selezionati.

+0

' MultiSelectSegmentedControl' è molto bello. Estende 'UISegmentedControl' in modo che siano disponibili tutti i suoi metodi. –

Problemi correlati