2009-11-11 4 views
1

Existe-t-il un moyen d'envelopper les champs dans un UIPickerView afin qu'il ressemble plus à ce qu'il simule. Une fois que j'arrive à la dernière valeur, je veux voir la première valeur en dessous. Cette UIPickerView serait capable de défiler vers le bas pour toujours, en répétant continuellement toutes les valeurs.Enveloppez UIPickerView?

Est-ce possible?

+0

Ce que vous essayez de dire, c'est le rendre * circulaire *. – mk12

Répondre

0

d'abord ajouter cette fonction:

#define row_to_array_index(row) row%[YourArrayOfRowValues count] 

en supposant un NSArray appelé YourArrayOfRowValues ​​qui contient le texte pour chaque ligne.

Ensuite, dans votre méthode - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component, revenir un grand nombre (comme 10000), et dans votre méthode - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component, le retour (en supposant que 1 composant) [[self YourArrayOfRowValues objectAtIndex:row_to_array_index(row)];

Il n'y aura pas de succès la performance ou la mémoire. Aucun utilisateur n'essaiera jamais de descendre 10 000 lignes, faites-moi confiance. Et quand la fenêtre est rechargée, sélectionnez les mêmes données les plus proches du milieu.