UISegmentedControl deselezionare (fare nessuno dei segmenti selezionati)
-
18-09-2019 - |
Domanda
, infatti, il titolo contiene la mia domanda. Ho un UISegmentedControl, e la necessità di deselezionare scheda selezionata. Ho provato:
[menu setSelectedSegmentIndex:-1];
menu di essere l'UBOutlet per uisegmentedcontrol ma questo mi dà eccezione. Qualcuno ha qualche idea? Grazie peter
Soluzione
Parto dal presupposto che avete chiamato [myArray length]
invece del corretto [myArray count]
da qualche parte nel codice. NSArray utilizza il metodo di conteggio, non di lunghezza per il numero di elementi in esso contenuti.
Altri suggerimenti
Il modo giusto per farlo è:
[menu setSelectedSegmentIndex:UISegmentedControlNoSegment];
Credo che si tenta di creare una selezione momentanea nel controllo segmentato. In Interface Builder impostare il segmentedcontrol alla momentanea. O in codice è possibile fare:
menu.momentary = YES;
Impostazione della segmentedControl al .momentary = YES
cambia il modo in cui l'utente può interagire con il segmentedControl. Se si vuole avere niente selezionato inizialmente quando la pagina viene caricata, ma hanno segmentedControl si comportano allo stesso, dopo una selezione viene effettuata da parte dell'utente poi si vuole qualcosa di più simile a questo:
Swift 4 soluzione :
@IBOutlet weak var segmentedControl: UISegmentedControl!
self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment
A questo punto è possibile farlo in Xcode 6 nel generatore di interfaccia:
Deselect the 'Selected' option under segmented control behaviour in attributes inspector.
La soluzione Swift:. @IBOutlet weak var mySegmentedControl: UISegmentedControl!
e mySegmentedControl.selectedSegmentIndex = -1
rapida 4
@IBOutlet weak var segmentControl: UISegmentedControl! {
didSet {
segmentControl.selectedSegmentIndex = UISegmentedControl.noSegment
}
}