2009-08-25 5 views
1

J'ai des commandes de sélecteur sur une seule vue avec deux sorties pour chacune. Lorsque l'un d'eux est sélectionné, la même méthode est appelée. Comment devrais-je distinguer entre quel contrôle picker a appelé le délégué?Mettre deux commandes de sélecteur sur un seul UIView

Comment puis-je modifier la taille de l'image des sélecteurs pour tenir dans une vue?

Merci,

Amit

Répondre

0

Définissez la vue d'une UILable et définir la taille de la police ou adjustsFontSizeToFitWidth:

UILabel *myView; 
myView = [[[UILabel alloc] initWithFrame:myFrameRect] autorelease]; 
myView.adjustsFontSizeToFitWidth = YES; 
return myView; 
0

Deux ramasseurs dans une vue semble fou laid. Cela ne fonctionnerait-il pas vraiment pour vous d'avoir un sélecteur avec deux composants (c'est-à-dire des colonnes)? Néanmoins, le premier paramètre de chaque méthode définie par UIPickerViewDelegate est le sélecteur qui vous a appelé. Si vous avez câblé un IBOutlet à chaque UIPickerView, vous devriez pouvoir comparer ce paramètre à ces prises pour savoir lequel vous a appelé. Quelque chose comme ceci:

IBOutlet UIPickerView *fooPicker; 
IBOutlet UIPickerView *barPicker; 

// ... 

- (NSString *)pickerView:(UIPickerView *)pickerView 
    titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
    if (pickerView == fooPicker) 
     return [NSString stringWithFormat @"Foo row %d", row]; 
    else 
     return [NSString stringWithFormat @"Bar row %d", row]; 
} 

Il est peut-être plus propre de se connecter à différents objets que vos délégués, mais avec deux préparateurs en un point de vue, « propre » est probablement pas une option pour vous de toute façon.

+0

Le problème est que les données à afficher dans les deux prickers sont assez grandes pour être ajustées. Donc, quand nous faisons cela, le texte est découpé avec "..." et je pense que nous ne pouvons pas réduire la taille de la police du texte dans les sélecteurs? – AmJa

0

J'ai eu un grand succès avec mettre deux ramasseurs juste au-dessus d'un autre, puis à l'aide d'un UISegmentedControl pour sélectionner ce qui est visible, en définissant les propriétés .hidden de chacun.

0

Au lieu d'avoir deux sélecteurs, vous pouvez le faire comme un seul. Vous pouvez avoir le contrôleur du sélecteur dans une vue. Une fois que l'utilisateur touche un bouton, augmentez la vue et faites-les sélectionner dans le sélecteur et supprimez la vue. Cela réduira l'espace dans le contrôleur de la vue principale.

Questions connexes