2016-05-11 3 views
0

Ich muss den Namen einer Stadt am Ende der Basis API vor dem Aufruf anhängen. Ich wähle UIPickerView gewünschte Stadt zu wählen, aber beim Scrollen Zeilen für erforderlich Stadt, die Scroll-Pause (wie Sie es erwarten, wenn durch eine lange Liste scrollen) löst das folgende UIPickerViewDelegate Methode:Halten Sie die UIPickerViewDelegate-Methode für einige Sekunden ausgelöst

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

Auf den Punkt gebracht, es macht api Anruf für die falsche Stadt. Gibt es eine andere Möglichkeit/Methode, um die Scroll-Auswahl zu erhalten?

Antwort

0

Es gibt keine andere Methode, die die UIPickerViewDelegate Aufrufe, die Sie mit der ausgewählten Zeile bereitstellen würde. Es gibt jedoch alternative Möglichkeiten, den von Ihnen gewünschten Effekt zu erzielen.

Vielleicht ist die einfachste Sache, die Sie tun können, ist ein UIToolbar hinzufügen, legen Sie sie direkt über Ihre UIPicker und eine Schaltfläche hinzufügen, die „Select“ zeigt (oder was auch immer Wort, das Sie fühlen sich angemessen ist). Wenn der Benutzer mit dem Scrollen und tatsächlich an der gewünschten Stadt fertig ist, kann er den Knopf drücken. An diesem Punkt können Sie zugreifen, welcher Index der UIPicker ist mit:

- (NSInteger)selectedRowInComponent:(NSInteger)component 

Dann können Sie Ihre API-Anfrage durchführen, und es wird mit der richtigen Stadt sein!

+0

Hallo @ Dunkmann00, ich bin etwas verwirrt, wie man das macht. Will Sie wissen lassen, ob es funktioniert – Abdkar

+0

Ich benutzte eine bar-Taste und erstellt IB Action für die Verwendung der Methode: '- (IBAction) chooseCurrency: (id) sender' Ich bin verloren bei der Verwendung: ' - (NSInteger) selectedRowInComponent : (NSInteger) component' Methode, um auf den Index von UIPicker zuzugreifen. Jede Hilfe wäre willkommen. – Abdkar

+0

@Abdkar In der Methode, an die Sie die IB-Aktion angefügt haben, '- (IBAction) chooseCurrency: (id) sender', rufen Sie die' - (NSInteger) selectedRowInComponent: (NSInteger) -Komponente von UIPickerView mit einer Komponente von 0 auf (vorausgesetzt, es gibt nur 1 Komponente) und der Rückgabewert wird die aktuelle Zeile des UIPickerView sein. – dunkmann00