2014-09-18 21 views
10

Hat sonst jemand Probleme mit UIDatePickers in Popovers auf iOS 8? Plötzlich werden unsere Datumswähler nicht korrekt angezeigt (siehe Screenshot). Es scheint, dass ein Teil des Pickers nicht angezeigt wird (Sie können jedoch immer noch mit dem fehlenden Teil interagieren, um die Zeit zu ändern).UIDatePicker Probleme in Popovers auf iOS 8

Ich habe einige Tests durchgeführt, und Datumsauswahl in anderen Ansichten perfekt angezeigt, so ist es etwas mit Popovers oder Anzeige der Picker in einer Ansicht, die nicht Vollbild ist.

Hat jemand eine Lösung oder einen Workaround für diese Probleme gefunden?

UIDatePicker issues in popovers on iOS 8

+0

es ist auch nicht nur für Popovers, sondern für Tableview. –

Antwort

20

fand ich eine Lösung in dem Apple Developer Forum (meine Backup-Wissensbasis, wenn Stack-Überlauf mich nicht).

Benutzer Natsu hatte die folgende Lösung:

ich das gleiche Problem in meinem Projekt haben. Und es verursacht nur auf dem iPad Geräte (iPhone hat kein Problem mit dem gleichen Code). Als mein Verständnis, UIDatePicker enthält UITableView und UITableViewCell für die Anzeige Picker Inhalte und seine Hintergrundfarbe ist standardmäßig weiß eingestellt. Diese ist der Grund für dieses Problem. iOS 7 hat UITableViewCell mit weißen Hintergrund in UIDatePicker iOS 8 hat UITableView mit weißem Hintergrund in UIDatePicker Also meine Lösung ist, dass ich diese Hintergrundfarbe auf Null gesetzt durch UIAppearance wie folgt aus:

[[UITableView appearanceWhenContainedIn:[UIDatePicker class], nil] setBackgroundColor:nil]; // for iOS 8 
[[UITableViewCell appearanceWhenContainedIn:[UIDatePicker class], [UITableView class], nil] setBackgroundColor:[UIColor colorWithWhite:0.0 alpha:0.0]]; // for iOS 7 

Die Werte, die ich einstelle, sind die Farbe, die auf iPhone benutzt wird. Ich bin mir nicht sicher, ob es ein korrekter Weg ist, um das Problem zu beheben . Aber zumindest in meiner Umgebung funktioniert es gut. Ich weiß nicht , wenn das Problem von UIPickerView aus dem gleichen Grund verursacht. Aber Überprüfung der Hierarchie kann Ihnen helfen.

Da dies UIAppearance verwendet, können Sie es fast überall platzieren. Ich habe es in meiner Tischzellenklasse in watchFromNib gespeichert und es funktionierte wie ein Zauber. Danke Natsu!

+0

genial. funktioniert wie Charme! Danke, dass du das zu SO gebracht hast :) –

+0

Danke, dass es für mich funktionierte ...... :) – Leena

+0

Arbeitete auch für mich - danke! – Luke