Custom iOS UIDatepicker mit UIAppearance
UNIQLO ist die neue alarm-app hat eine benutzerdefinierte UIDatePicker
:
Und ich möchte meine eigenen UIDatePicker
.
Habe ich versucht zu ändern das Aussehen der DatePicker, aber auf der Suche nach UI_APPEARANCE_SELECTOR
im UIDatePicker
gibt nichts.
Bedeutung, dass es nicht mehr möglich um Werte zu ändern, wie pro die docs:
Wie ändern kann, ist mein UIDatePicker
's Aussehen?
- bitte entschuldigen Sie das GROßE Bild..
- Sie möchten nur 2 Komponente in UIDatePicker oder brauchen Sie gerade, dass die weiße Schrift der text als Anpassung?
- Die Individualisierung, so viel wie ich kann: - Schriftart, Farbe, alles.
- Bitte nehmen Sie sich einen Blick, den ich angepasst haben, die innen-Ansicht von picker, Sie können den code ändern, wie pro Anforderung.
- sind Sie immer Problem beim anpassen der pickers' - Inhalt mit der Methode, die ich gehen ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die API bietet keine Möglichkeit, dies zu tun.
Sie können eine ziemlich überzeugende Replik selbst mit einem UIPickerView anstatt UIDatePicker.
Als UIDatePicker oder UIPickerView nicht die UI_APPEARANCE_SELECTOR und auch Sie können nicht ändern UIDatePicker Inhalt' Erscheinung als sein UIControl und nicht mit einer so delegieren Sie hat Ihre einheitlichen Erscheinungsbild in der Erwägung, dass im Falle der UIPickerView können Sie Ihren Inhalt verändern " Aussehen, ähnlich wie in UITableView.
Check this out.
fügen Sie diese Methode in der Implementierungsdatei
beim ausführen der app wird es angezeigt, alle Unteransichten der datePicker auf der Konsole, wählen Sie einfach index und ändern Sie eins nach dem anderen
ändern Sie die Kommentarzeichen vor der viewDidLoad und fügen Sie diesen code
In diesem Fall ändere ich die Hintergrundfarbe der index "0", "4", "11"
Mit iOS 5 die UIAppearance - Protokoll eingeführt wurde, die können Sie anpassen, mehrere UI-Elemente. UIDatePicker geschieht konform zu diesem Protokoll, so dass ist wahrscheinlich der einfachste Weg, dies zu tun. Das ist, wenn Sie bereit sind, nur für die Unterstützung von iOS 5 Benutzer. Matthäus option wäre wahrscheinlich die nächste beste Sache, die sollte auch mit älteren iOS-Versionen.
UIDatePicker
s Grafiken. Überprüfen Sie meine Antwort für mehr Einblick.Scheint es ziemlich schwierig zu ändern, wie ein
UIDatePicker
erscheint.Das Beispiel, das Sie zur Verfügung gestellt, meiner Meinung nach, ist eine ausgefeilte Anpassung für eine einfache
UIPickerView
mit zwei Spalten und wahrscheinlich eine simulierte unendliche scrollen (Apple hat in der Datumsauswahl, und es ist ziemlich einfach zu realisieren).Können Sie ändern wenig an der
UIDatePicker
durch dieUIAppearance
- proxy, wie in diesem Beispiel zu sehen:Mithilfe dieses Stück code beim start der Anwendung (einfach mal probieren) ändern Sie das Aspekt nur ein paar der wichtigsten Komponenten für die Datumsauswahl.
Etiketten sind unmöglich anpassen (und dieser test-code beweist es); anscheinend sind Sie verändert Aspekt jedes mal, wenn Sie drehen eine Spalte, da sind Sie in eine benutzerdefinierte
UITableView
controller.Vollständig zu ändern, diese Erscheinungen sollten Sie vielleicht die Arbeit mit den privaten APIs von Apple, die schließlich führen Sie Ihre app als abgelehnt.
Wenn Sie eine benutzerdefinierte Stunde-minute-picker (wie in deinem screenshot), die vollständige Anpassung des Aussehens erreichbar ist, nur die Verlängerung der
UIPickerView
Klasse oder die Zuweisung eines entsprechenden Delegierten zu einemUIPickerView
Instanz.Durch die
Methode über den Delegaten können Sie das einzelne element des picker-Ansicht erscheinen, wie Sie wollen. Dann müssen Sie auch entsprechend verarbeiten der Datenquelle, um die beiden Komponenten der Farbauswahl nahezu unendlich.
Können Sie implementieren, die man selbst mit zwei UIScrollViews, eins für Stunden und eins für Minuten. Sie würden einfach brauchen, um herauszufinden, die contentOffset jeder scrollview, wenn es nicht mehr bewegt, was aus der Spitze von meinem Kopf, würde so Aussehen:
Nehmen Sie den Wert des Inhalts-offset und übersetzen Sie es in der Stunde Wert und minute Wert, wahrscheinlich durch Division der y-position des Inhalts-offset von 24 oder 60 beziehungsweise. Sie benötigen, um die benutzerdefinierten Kunstwerk selbst.
Ändern Datum-picker-Farbe:
Und die schriftart zu ändern der einzige Weg den ich kenne ist:
Erstellen Kategorie
UIFont+System
und platzieren Sie diesen code inDies wird auch Schriften in anderen Orten in Ihrer app (Ersatz-system-schriftart, indem Sie Ihre schriftart).
Sollten Sie über die UICatalog von Apple. Es hat all die Methoden, in denen ein UIDatePicker kann verwendet werden, einschließlich der benutzerdefinierten Datums-picker-Methode . Studieren Sie diesen link developer.apple.com/library/ios/samplecode/UICatalog/. Sie haben auch implementiert einen standard-Schalter und die Navigationsleiste, welche in der letzteren.
Einer Kombination von 2
UITableViews
ist der Weg zu gehen.UITableView
ist eine Untersicht derUIScrollView
, so dass es behandelt das folgende Ereignisund immer auf der position, nur das scrollen der Tabelle um die Mitte mit der folgenden Methode
Hoffe, das hilft.