2012-07-31 5 views

Répondre

0

Si vous regardez le UIPickerView class reference, vous verrez:

selectRow: inComponent: animation:

Sélectionne une ligne dans un composant spécifié de la vue du sélecteur.

- (void)selectRow:(NSInteger)row 
     inComponent:(NSInteger)component 
     animated:(BOOL)animated 

Vous pouvez appeler cette méthode lorsque le bouton est enfoncé, l'envoi NO pour le paramètre d'animation, pour sélectionner instantanément une ligne particulière.

+0

Merci. Je le savais. Je veux dire arrêter l'animation à la ligne qui a été sélectionnée au moment où j'appuie sur le bouton. Ou au moins obtenir la valeur actuelle du sélecteur. Par exemple, la propriété date UIDatePicker ne change que lorsque l'animation s'arrête. Mais je sais qu'il est possible d'obtenir une valeur instantanée parce que je l'ai vu dans une autre application. :) J'espère que c'est clair ce que je veux dire. L'anglais n'est pas ma langue maternelle. – user1561346

1

Regardez dans - (UIView *)viewForRow:(NSInteger)row forComponent:(NSInteger)component

Depuis Picker ne peut afficher que nombre limité de résultats à la fois. Vous pouvez implémenter un algorithme pour déterminer ce qui se trouve au milieu du résultat lorsque cette méthode est appelée. Il est appelé chaque fois qu'une nouvelle option apparaît (tout comme tableView viewForIndexPath). Donc, faire défiler vers le haut ou vers le bas appellera cette méthode.

Attention, vous devez ajouter des options de remplissage aux premiers choix et les derniers choix juste pour que cela fonctionne correctement. Cela vous obtiendra l'effet que vous voulez. Soyez averti, Apple pourrait ne pas être d'accord avec cette méthode car elle n'agit pas comme Apple.

Faites-moi savoir si cela fonctionne.