Ich versuche, einen "Fertig" -Button in einem UIPickerView zu implementieren. Ähnlich wie der unter link
Ich habe in der Klassenreferenz nachgesehen, aber ich konnte es nicht finden
Danke
Ich habe eine UIToolbar mit einem UIBarButtonItem für die Schaltfläche 'done' in meinem xib hinzugefügt, wobei der Frame so gesetzt ist, dass er anfänglich nicht sichtbar ist (y-Wert entspricht der Höhe der übergeordneten Ansicht).
Jedes Mal, wenn der Benutzer auf den Picker zugreift, ändere ich den Frame (den y-Wert) des UIDatePicker und der UIToolbar mit einer Animation, so dass er zusammen mit dem Picker vom unteren Rand des Bildschirms ähnlich der Tastatur nach oben gleitet.
Sehen Sie sich meinen Code unten an.
%Vor% Am einfachsten ist es, es in Interface Builder zu modellieren. Es ist ein UIView
mit einem UIToolbar
und einem UIPickerView
.
Erstellen Sie dann eine Steckdose für die UIView
und verbinden Sie sie.
Wenn Sie dann UITextField
haben, können Sie Ihre benutzerdefinierte Ansicht der Eigenschaft inputView
zuweisen.
Alternativ können Sie den Picker zu Ihrer Hauptansicht hinzufügen ...
%Vor%... und verwenden Sie dann diese Methode, um den Picker ein- oder auszublenden.
%Vor%Ich erstelle eine benutzerdefinierte Klasse, dies unterstützt mehrere Orientierungen:
DateTimePicker.h
%Vor%DateTimePicker.m
%Vor%Verwenden der benutzerdefinierten Ansicht in Ihrem Ansichtscontroller:
%Vor%Hoffe, das hilft. :)
Es gibt eine elegantere Lösung. Ich bin mir nicht sicher, ob das neu ist (ab iOS7), aber das hat prima für mich funktioniert.
TJDatePicker.h
%Vor%TJDatePicker.m
%Vor%Und dann zur Zeit der Implementierung ...
%Vor% Der Schlüssel hier ist die Verwendung der inputAccessoryView
der UITextField
, die Sie beim Festlegen von UIDatePicker
verwenden möchten.
Sie erhalten die Schaltfläche "Fertig" in der Symbolleiste mit dem ActionSheetPicker. Es ist eine gute Alternative, um es selbst zu bauen.
Erfolg! Ok, ich würde das nie vorschlagen, aber hier ist die Schaltfläche "Fertig" in deinem speziellen Tutorial-Code erstellt:
Wenn wir uns das Storyboard ansehen, sehen wir, dass wenn man in "AddPersonTVC.h" (Klasse oben rechts im Storyboard) auf das Feld "Role" klickt, eine Klasse namens "RollPickerTVCell.h" erscheint. p>
Wenn wir uns RollPickerTVCell.h ansehen, bemerken wir, dass die ganze Klasse eine Unterklasse von "CoreDataTableViewCell"
ist %Vor%Wenn wir uns die Klasse "CoreDataTableViewCell.m" anschauen, finden wir endlich unser uibarbuttonitem!
%Vor%Wenn Sie an einer Tabellenansichtszelle arbeiten und kein UITextField verwenden (daher werden Sie die Zubehöransicht nicht verwenden), habe ich Folgendes getan:
Ich habe eine Tabellenansichtszelle namens GWDatePickerCell
erstellt, die so aussieht (keine .nib-Dateien sind beteiligt).
GWDatePickerCell.h
:
GWDatePickerCell.m
:
Jetzt musste ich nur noch die Zellen in der Tabellenansicht erstellen:
@selector
für die Schaltfläche "Fertig" an. heightForRowAtIndexPath
ein
Tags und Links objective-c ios uipickerview xcode4.3