In che modo UIPickerView gestisce la rotazione dei quadranti 2+?
-
20-08-2019 - |
Domanda
Se ho un UIPickerView con tre componenti (quadranti). In che modo il selettore gestisce due quadranti che ruotano contemporaneamente? Ad esempio, l'utente può scorrere il primo quadrante, che gira liberamente e fare clic lentamente lentamente su una selezione sul secondo quadrante.
Sto facendo quanto segue nel selettore. Se gira un quadrante, non ne acquisisco il valore. Catturo i valori solo quando i quadranti ruotano uno alla volta.
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
if(component == 0){
dateEndCenturyText = (NSString *)[dateCentury objectAtIndex:row];
}
else if(component == 1){
dateEndDecadeText = (NSString *)[dateYear objectAtIndex:row];
}
else if(component == 2){
dateEndYearText = (NSString *)[dateYear objectAtIndex:row];
}
Esiste un modo migliore per garantire l'acquisizione di valori anche se ruotano due quadranti?
Soluzione
La soluzione più solida a questo potrebbe essere quella di aggiornare tutti e tre i valori ogni volta che viene generato l'evento. È possibile recuperare la riga selezionata per qualsiasi componente in UIPickerView utilizzando il seguente metodo:
UIPickerView selectedRowInComponent:
Restituisce l'indice della riga selezionata in un determinato componente
- (NSInteger) selectedRowInComponent: (NSInteger) componente
Spero che questo aiuti!