Objective C implementiert eine UIPickerView mit einem "Done" Button

7

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

    
user1051935 22.05.2012, 14:56
quelle

7 Antworten

6

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%     
Jiho Kang 22.05.2012, 15:29
quelle
39

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.

%Vor%

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%     
Paul Hunter 22.05.2012 15:28
quelle
2

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. :)

    
thanhbinh84 28.03.2013 08:26
quelle
1

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.

    
jakenberg 31.03.2014 17:43
quelle
1

Sie erhalten die Schaltfläche "Fertig" in der Symbolleiste mit dem ActionSheetPicker. Es ist eine gute Alternative, um es selbst zu bauen.

Ссылка

    
Chris Woolfe 01.04.2015 18:02
quelle
0

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%     
Highrule 22.05.2012 15:10
quelle
0

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 :

%Vor%

GWDatePickerCell.m :

%Vor%

Jetzt musste ich nur noch die Zellen in der Tabellenansicht erstellen:

  • Geben Sie @selector für die Schaltfläche "Fertig" an.
  • Stellen Sie die korrekte Zellenhöhe in heightForRowAtIndexPath ein
maggix 18.05.2014 14:08
quelle