it-swarm.com.de

Popup / Modal Picker für ein Textfeld in iOS 7

Ich habe große Probleme damit, einen Standard-Popup-Picker zu implementieren. Wie der Registrierungsbildschirm vieler Apps, wenn ein Benutzer das Geburtstagstextfeld auswählt, soll eine Popup-Auswahl angezeigt werden, damit Benutzer ihren Geburtstag auswählen können. Klicken Sie auf Fertig, und das formatierte Datum wird dem Textfeld hinzugefügt. Dies scheint nicht allzu schwierig zu sein, aber es scheint, dass es in iOS 7 keine einfache, klare und standardmäßige Methode gibt, dies zu tun.

Ich habe im Internet gesucht und gesehen, dass einige sagen, sie würden Modale verwenden, andere sagen Aktionsblätter, andere sagen Popups und wieder andere sagen, sie hätten einen separaten Ansichts-Controller.

Kann mir jemand sagen, was die Standardmethode dafür ist, oder einen Ausschnitt, wie man es implementiert?

32
ChuckKelly

Ich denke, die "Standard" -Methode ist, die Auswahl als Eingabeansicht des Textfelds festzulegen.

UIPickerView *picker = [[UIPickerView alloc] init];
self.textField.inputView = picker;

Es wird vorne unten eingeblendet, genau wie die Tastatur, wenn Sie im Textfeld berühren.

Hier ist eine einfache Implementierung, wie ein Picker als Eingabeansicht verwendet wird:

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *tf;
@property (strong,nonatomic) NSArray *theData;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIPickerView *picker = [[UIPickerView alloc] init];
    picker.dataSource = self;
    picker.delegate = self;
    self.tf.inputView = picker;
    self.theData = @[@"one",@"two",@"three",@"four"];
}

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    return self.theData.count;
}

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return  1;
}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    return self.theData[row];
}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    self.tf.text = self.theData[row];
    [self.tf resignFirstResponder];
}
71
rdelmar

Die ActionSheetPicker-3.0 Bibliothek scheint dies ziemlich gut zu tun.

Date chooser

animation

16