2010-03-01 16 views
2

J'ai un UIPickerView avec deux composants. Cela fonctionne correctement lorsque l'utilisateur fait défiler chaque composant jusqu'à ce qu'il atteigne la valeur souhaitée. Mais je veux qu'il se comporte comme le sélecteur dans le calendrier ou les applications de l'horloge. Signification: Lorsque l'utilisateur appuie sur une certaine valeur dans l'un des composants, je veux que ce composant transforme automatiquement cette ligne en ligne sélectionnée (afin que l'utilisateur ne doive pas toujours faire défiler, il peut aussi simplement sélectionner la valeur Ils veulent).Sélection de ligne UIPickerView

Est-ce que quelqu'un sait comment faire cela?

Merci,

~ Chonch

+0

Voulez-vous un UIDatePicker (http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIDatePicker_Class/Reference/UIDatePicker.html)? – kennytm

+0

Non. Je veux un sélecteur personnalisé avec deux composants ... –

Répondre

0

Il est un comportement de sélecteur standard et il devrait fonctionner automatiquement.

Si votre préparateur ne cherche pas sélectionner la ligne automatiquement exploité pour définir la propriété userInteractionEnabled à NO pour la vue que vous revenez de méthode viewForRow: dans la source de données de sélecteur.

+0

J'utilise UIView avec un UILabel à l'intérieur comme valeur de retour pour viewForRow. J'ai essayé d'ajouter userInteractionEnabled pour UILabel et UIView mais cela ne semble pas aider. Pouvez-vous penser à une autre option? –

+0

Pourriez-vous poster votre viewForRow: méthode? – Vladimir

+0

if (composant == 0) \t { \t \t Style * curStyle = [self.styleArray objectAtIndex: row]; \t \t \t \t // Création de la vue de la partie sélectionnée \t \t de trame CGRect = CGRectMake (0, 0, 120, 46); \t \t UIView * view = [[UIView alloc] initWithFrame: image]; \t \t \t \t // Ajouter le nom de pièce \t \t frame = CGRectMake (10, 0, 110, 46); \t \t UILabel * lbl = [[UILabel alloc] initWithFrame: frame]; \t \t lbl.text = curStyle.styleName; \t \t lbl.backgroundColor = [UIColor clearColor]; \t \t [voir addSubview: lbl]; \t \t [libération de lbl]; \t \t view.userInteractionEnabled = YES; \t \t \t \t retour vue; \t} \t d'autre \t \t return [self.partsArray objectAtIndex: row]; –