UISegmentedControl Comportamento

voti
4

Una domanda veloce sulla classe UISegmentedControl su iPhone.

Auspicabilmente, alcuni possono avere notato come nello stato predefinito di 2 segmenti, il controllo segmentato ancora commuta anche se l'utente tocca un segmento che è attualmente selezionato.

Ho visto UISegmentedControls in applicazioni che negano che il comportamento e non si alternano quando l'utente preme un segmento selezionato. Vale a dire, di Apple iTune Store.

C'è un modo semplice per prevenire questo comportamento che sto con vista, o devo scrivere una certa logica nel valueChanged?

Ho cercato di disabilitare i segmenti attualmente selezionate e permettendo quelli non selezionati, ma questo sembra cambiare l'aspetto del controllo quando non lo voglio fare.

Qualche idea?

È pubblicato 11/03/2009 alle 10:58
fonte dall'utente
In altre lingue...                            


4 risposte

voti
8

Guardate nel UISegmentedControl.h file di intestazione (un modo semplice è quello di fare doppio clic su "UISegmentedControl" in XCode con Command premuto).

Lì si vedrà una serie di elementi in una _segmentedControlFlags struct. Se si effettua una categoria UISegmentedControl, è possibile manipolare qualsiasi di questi elementi - tra cui dontAlwaysToggleForTwoSegments che, come si può intuire dal nome è quello che stai cercando.

Dal momento che questo è documentato nella intestazione API (anche se non nella documentazione reale) dovrebbe essere abbastanza sicuro da usare.

Risposto il 12/03/2009 a 00:23
fonte dall'utente

voti
4

In 3.0, " _segmentedControlFlags " è stato modificato per la " momentanea proprietà", che può ancora essere trovato nel UISegmentedControl.h file di intestazione.

Risposto il 20/07/2009 a 21:59
fonte dall'utente

voti
4

Questo comportamento di default è stato cambiato nel API 3.0.

Risposto il 18/04/2009 a 03:20
fonte dall'utente

voti
1

Accesso ai _segmentedControlFlags tramite una categoria è considerata come l'uso di un privato API e quindi una violazione del contratto di licenza da Apple, come ho dovuto imparare oggi. Fino ad ora, ho pensato, le categorie sono una caratteristica del linguaggio per risolvere qualcun'altro design di classe orribile ...

Risposto il 09/12/2009 a 04:14
fonte dall'utente

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