Question

Si j'ai un UIPickerView avec trois composants (cadrans). Comment le sélecteur gère-t-il la rotation simultanée de deux cadrans? Par exemple, l'utilisateur peut feuilleter le premier cadran, ce qui tourne librement et immédiatement et lentement sur une sélection du deuxième cadran.

Je fais ce qui suit dans le sélecteur. Si un cadran tourne, je ne capture pas sa valeur. Je ne capture les valeurs que lorsque les cadrans tournent un à un.

- (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];
}

Existe-t-il un meilleur moyen de garantir la capture des valeurs même si deux cadrans tournent?

Était-ce utile?

La solution

La solution la plus robuste consiste à mettre à jour les trois valeurs chaque fois que l'événement est déclenché. Vous pouvez récupérer la ligne sélectionnée pour n’importe quel composant de UIPickerView à l’aide de la méthode suivante:

  

UIPickerView selectedRowInComponent:

     

Renvoie l'index de la ligne sélectionnée dans un composant donné

     

- (NSInteger) selectedRowInComponent: composant (NSInteger)

J'espère que ça aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top