2009-08-25 8 views
1

Ich habe Picker-Steuerungen auf einer einzigen Ansicht mit zwei Ausgängen für jede. Wenn einer von ihnen ausgewählt wird, wird dieselbe Methode aufgerufen. Wie sollte ich unterscheiden, welche Picker-Steuerung den Delegierten aufgerufen hat?Setzen von zwei Picker Control auf einzelne UIView

Wie kann ich die Rahmengröße der Picker ändern, um in eine Ansicht zu passen?

Danke,

Amit

Antwort

0

Stellen Sie den Blick auf einen UILable und stellen Sie die Schriftgröße oder adjustsFontSizeToFitWidth:

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

Zwei Pflücker in einer Ansicht klingt verrückt hässlich. Würde es für Sie wirklich nicht funktionieren, einen Kommissionierer mit zwei Komponenten (dh Spalten) zu haben?

Dennoch ist der erste Parameter in jeder von UIPickerViewDelegate definierten Methode der Picker, der Sie aufgerufen hat. Wenn Sie ein IBOutlet mit jedem UIPickerView verbunden haben, dann sollten Sie in der Lage sein, diesen Parameter mit diesen Anschlüssen zu vergleichen, um herauszufinden, welcher Sie angerufen hat. Etwas wie folgt aus:

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

Es könnte sauberer sein, verschiedene Objekte wie Ihre Teilnehmer zu verbinden, aber mit zwei Kommissionierer in einer Ansicht, „sauber“ ist wahrscheinlich nicht eine Option für Sie sowieso.

+0

Das Problem ist, dass die Daten, die in beiden Prickern angezeigt werden, groß genug sind, um angepasst zu werden. Wenn wir das machen, wird der Text mit "..." abgeschnitten und ich denke, wir können die Schriftgröße des Textes in den Pickern nicht reduzieren. – AmJa

0

Ich habe rechts oben auf sie mit Putting zwei Kommissionierer großen Erfolg habe und dann eine UISegmentedControl mit zu wählen, welche ist sichtbar, indem Sie die .hidden Eigenschaften von jedem festlegen.

0

Anstatt zwei Picker zu haben, können Sie es als eins machen. Sie können den Picker-Controller in einer Ansicht anzeigen lassen. Sobald der Benutzer eine Schaltfläche berührt, heben Sie die Ansicht an und machen Sie sie zur Auswahl aus der Auswahl und entfernen Sie die Ansicht. Dadurch wird der Platz im Hauptansicht-Controller reduziert.

Verwandte Themen