Ich habe uitextfield und Picker-Ansicht als Eingabeansicht hinzugefügt.show uipickerview nach einiger Verzögerung
alles funktioniert perfekt. Mein Problem ist, sobald ich auf uitextfield-Picker-Ansicht mit Werten erscheint. aber ich erhalte einige Daten von der Datenbank, die für einen anderen Textkasten abhängig von gewähltem Auswahlwert aktualisiert werden.
Es gibt 5-6 Sekunden Zeitintervall bis ich Daten von der DB bekomme. Die Picker-Ansicht ist jedoch bei vorab geladenen Werten sichtbar, bevor die Aufrufe mit den Daten zurückkehren.
Ich möchte nur eine Art Verzögerung hinzufügen, bis ich Daten von DB Picker Wert sollte nicht sichtbar sein ... Hinweis: Ich habe bereits versteckt verwendet. Funktioniert nicht richtig.
UIPickerView *vwlistPicker = [[UIPickerView alloc] init];
[vwlistPicker sizeToFit];
vwlistPicker.delegate = self;
vwlistPicker.dataSource = self;
vwlistPicker.showsSelectionIndicator = YES;
UITextField *txtPayType = [[UITextField alloc] initWithFrame:CGRectMake(0, 65, 250, 30)];
txtPayType.layer.borderWidth = 0.5;
txtPayType.layer.masksToBounds = true;
txtPayType.layer.cornerRadius = 5;
txtPayType.layer.borderColor = [[UIColor blackColor] CGColor];
txtPayType.layer.sublayerTransform = CATransform3DMakeTranslation(5, 0, 0);
txtPayType.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
txtPayType.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
txtPayType.tag = 1;
[txtPayType setDelegate:self];
txtPayType.text = [tempDic valueForKey:@"PayType"];
[txtPayType setFont:[UIFont fontWithName:@"Avenir-Medium" size:15.0]];
[txtPayType setTextColor:[UIColor colorWithRed:19.0/255.0 green:62.0/255.0 blue:137.0/255.0 alpha:1]];
[txtPayType setReturnKeyType:UIReturnKeyDone];
txtPayType.inputView = vwlistPicker;
UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init];
keyboardDoneButtonView.barStyle = UIBarStyleDefault;
keyboardDoneButtonView.translucent = NO;
keyboardDoneButtonView.barTintColor = [UIColor colorWithRed:10.0/255.0 green:23.0/255.0 blue:75.0/255.0 alpha:0];
[keyboardDoneButtonView sizeToFit];
UIBarButtonItem* doneButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStylePlain target:self
action:@selector(itemPickerDoneClicked:)] autorelease];
UIBarButtonItem* cancelButton = [[[UIBarButtonItem alloc] initWithTitle:@"Cancel"
style:UIBarButtonItemStylePlain target:self
action:@selector(itemPickerCancelClicked:)] autorelease];
[keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton,cancelButton, nil]];
txtPayType.inputAccessoryView = keyboardDoneButtonView;
[self.view addSubview:txtPayType];
//Textfield delegate
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField.tag == 1)
{
[vwlistPicker setHidden:TRUE];
double delayInSeconds = 5;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[vwlistPicker reloadInputViews];
textField.inputView = vwlistPicker;
[vwlistPicker reloadAllComponents];
[vwlistPicker setHidden:FALSE];
});
// Call to DB and get Data //
}
ich hinzugefügt Verzögerung/versteckt (Tastatur sowie Pickerview), aber immer noch Tastatur erscheint. und nach Verzögerungen erscheint die Picker-Ansicht-Option.
Ich möchte nicht, dass etwas angezeigt wird, und sobald ich die Datenauswahlansicht anzeigen lasse.
Anstatt zu verzögern, warum zeigen Sie nicht ein Spinner und zeigen dann den Picker mit richtigen Werten an? –
nein Ich brauche Daten als ... abhängig von Picker Ansicht Option Werte, Daten erhalten am 2. Textfeld modifizieren. Es ist wie ich bereits Picker View-Werte, aber abhängig von der Benutzerauswahl muss ich andere Werte ändern, die dort in der DB als nicht behoben sind. so ist es passiert, meine Picker-Ansicht erscheint 1. vor meinem Aufruf an db und ich bekomme Daten. – user2813740
Wie holen Sie Ihre Daten? –