Frage

Wenn ich eine UIPickerView mit drei Komponenten (Zifferblätter) haben. Wie geht der Kommissionierer zwei Zifferblätter gleichzeitig Spinnen? Zum Beispiel könnte flick der Benutzer die erste Zifferblatt, das auf dem zweiten Wahl frei und sofort langsam klicken, um eine Auswahl dreht.

Ich mache folgendes im Picker. Wenn ein Wahl dreht, erfasse ich nicht seinen Wert. Ich habe nur Werte erfassen, wenn die Zifferblätter einen nach dem anderen drehen.

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

if(component == 0){
    dateEndCenturyText = (NSString *)[dateCentury objectAtIndex:row];
}
else if(component == 1){
    dateEndDecadeText = (NSString *)[dateYear objectAtIndex:row];

}
else if(component == 2){
    dateEndYearText = (NSString *)[dateYear objectAtIndex:row];
}

Gibt es eine bessere Art und Weise Erfassung der Werte zu gewährleisten, selbst wenn zwei Zifferblätter Spinnen sind?

War es hilfreich?

Lösung

Die robusteste Lösung dieses Problems können alle drei Werte jedes Mal Ihre Veranstaltung Brände zu aktualisieren sein. Sie können die ausgewählte Zeile für jede Komponente in der UIPickerView mit dem folgende Verfahren abrufen:

  

UIPickerView selectedRowInComponent:

     

Gibt den Index der ausgewählten Zeile in einer bestimmten Komponente

     

- (NSInteger) selectedRowInComponent: (NSInteger) Komponente

Hope, das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top