Wie kann ich eine UIDatePicker
von UITableViewCell zeigen, und die datepicker
haben eine Symbolleiste an der Spitze, die Sie zurücktreten lässt? Gibt es gute Tutorials dazu?Wie man uidatepicker von uitableviewcell zeigt
Antwort
Ich habe vor kurzem musste genau dasselbe machen.
- Legen Sie eine
UITextField
in IhreUITableViewCell
(möglicherweise müssen Sie eine benutzerdefinierte erstellenUITableViewCell
je nachdem, ob Sie es auf jeder dynamische Zelle IhresUITableView
oder auf einer einzigen statischen Zelle erscheinen soll). erstellen Eigenschaften für eine
UIDatePicker
, einUIToolbar
und einUITextField
, dann in IB Haken dieUITextField
Eigenschaft auf IhreUITextField
in Schritt 1 erstellt haben (Wenn Sie eine benutzerdefinierteUITableViewCell
Klasse verwenden, das ist, wo dieUITextField
Eigenschaft müssten gehe zu):@property (strong, nonatomic) UIDatePicker * datePicker; @property (strong, nonatomic) UIToolbar * datePickerToolbar; @property (strong, nonatomic) IBOutlet UITextField *textField; ... @synthesize datePicker, datePickerToolbar, textField;
Richten Sie Ihre
UIDatePicker
,UIToolbar
undUITextField
:- (void)viewDidLoad { // Initialise UIDatePicker datePicker = [[UIDatePicker alloc] init]; datePicker.datePickerMode = UIDatePickerModeTime; [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged]; // method to respond to changes in the picker value // Setup UIToolbar for UIDatePicker datePickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)]; [datePickerToolbar setBarStyle:UIBarStyleBlackTranslucent]; UIBarButtonItem *extraSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissPicker:)]; // method to dismiss the picker when the "Done" button is pressed [datePickerToolbar setItems:[[NSArray alloc] initWithObjects: extraSpace, doneButton, nil]]; // Note: If you're using dynamic cells, the below 2 lines need to be in your cellForRowAtIndexPath method instead. // Set UITextfield's inputView as UIDatePicker textField.inputView = datePicker; // Set UITextfield's inputAccessoryView as UIToolbar textField.inputAccessoryView = datePickerToolbar; }
Setup-
dismissPicker
Methode:-(void)dismissPicker:(id)sender{ [textField resignFirstResponder]; }
Setup-
datePickerValueChanged
Methode:- (void)datePickerValueChanged:(id)sender{ NSDate *selectedDate = datePicker.date; NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"HH:mm"]; [textField setText:[df stringFromDate:selectedDate]]; }
Hinweis: In meinem Code, ich brauchte die Schnittstelle die Zeit anzuzeigen, damit das Datumsformat hier eingestellt (HH:mm
). Aus diesem Grund werden Sie auch feststellen, dass ich in meinem UIDatePicker
Initialisierungscode in viewDidLoad
seinen Modus auf UIDatePickerModeTime
festgelegt habe. Für Datumsauswahl können Sie es auf UIDatePickerModeDate
festlegen.
Sie könnten ein unsichtbares UITextField in die UITableViewCell einfügen und die UITextFields-Eingabesicht auf einen UIDatePicker setzen. Hier der Code:
yourdatePicker = [[UIDatePicker alloc]init];
yourtextField.inputView = yourdatePicker;
Ich benutze ActionSheetPicker [1]. Es erlaubt Ihnen, jede Art von Picker aus einem Aktionsblatt zu zeigen, das die aktuelle Szene teilweise überlappt. Außerdem können Sie Schaltflächen (wie "Abbrechen" oder "Heute") und einen Titel oben in der Ansicht hinzufügen.
[1]: Original-Version von Tim Cinel: https://github.com/TimCinel/ActionSheetPicker Verbesserungen von Hari Karam Singh: https://github.com/Club15CC/ActionSheetPicker Festen Veralten in meiner Gabel (ich glaube es jetzt in die andere verbreitet): https://github.com/booiiing/ActionSheetPicker
- 1. UITableViewCell Subviews nicht zeigt
- 2. UITableViewCell zeigt nicht Label
- 3. Wie zeigt man Strings nach dem Zufallsprinzip in uitableViewCell an?
- 4. UIDatePicker zeigt die falsche Zeit swift
- 5. Wie aktualisiert man UITableViewCell?
- 6. Wie man eine uitableviewcell implementiert, deren Wert von einer anderen uitableviewcell abgeleitet wird
- 7. Benutzerdefiniertes UITableViewCell zeigt keine Reorder-Kontrolle an
- 8. iphone UIDatePicker zeigt falsches Datum in Central Timezone
- 9. Swift UIDatePicker für Textfeld Eingabe - wie UIDatePicker verschwinden zu lassen?
- 10. UIDatePicker-Intervall von 10 Minuten?
- 11. UIDatePicker gewählter Wert ist falsch, falls UIDatePicker nicht
- 12. UIDatePicker reagiert nicht auf setDate
- 13. UIDatePicker Anpassung
- 14. UIDatePicker Lecks
- 15. UIDatePicker Ersatz für tvOS?
- 16. UIDatePicker zeigt kein Rad für den Tag des Monats (dd) auf dem iPad für iOS 8.1
- 17. Wie man benutzerdefinierte UITableViewCell in Swift
- 18. Wie fügt man UITableViewCell Checkboxen hinzu ??
- 19. Wie bearbeitet man die UITableViewCell mit UIButton?
- 20. Wie man von UITableViewCell benachrichtigt wird, verschiebe Start und Ende
- 21. Wie berechnet man das aktuelle Datum und zeigt es jedem UITableViewCell
- 22. Wie zeigt man die benutzerdefinierte Ansicht in UITableviewCell, wenn die Taste gedrückt wird?
- 23. UIDatePicker Blick in iPhone
- 24. UIDatePicker und NSDate
- 25. Abrufen von UITableViewCell von UITapGestureRecognizer
- 26. wie man Java-Konsole zeigt
- 27. Benutzerdefinierte UitableViewCell zeigt doppelte Daten für einige Zeilen der Tabelle
- 28. Mindestdatum auf UIDatePicker setzen
- 29. UIDatePicker und NSDate
- 30. UIDatePicker mit "done" Taste
das ist toll, aber könnten Sie auf ein paar Dinge näher eingehen. Zuerst erhalte ich diesen Fehler, wenn ich versuche, den Datepicker zurück zu setzen: - [UIBarButtonItem resignFirstResponder]: unerkannter Selektor und könnten Sie mir auch erklären, wie ich den textfields text auf das Datum setzen würde, das der Benutzer gesetzt hat. Wäre es etwas wie textField.text = ?? – Apollo
@Ausgeber Hoppla, überprüfen Sie bitte die Bearbeitung auf meinem 'lossPicker' Code. Außerdem habe ich Code für eine neue Methode hinzugefügt, um auf "UIControlEventValueChanged" zu reagieren, sowie den Code, um ihn auf dem 'UIDatePicker' einzurichten. – Yazid
das ist so toller Mann. Danke, dass Sie sich die Zeit genommen haben, mich durch dieses Thema zu führen. Schätze es wirklich. – Apollo