Ich habe versucht, Probleme wurden mit der UIDatePicker
Schrift und Farbe einzustellen. Alles andere in meiner App war ziemlich einfach anzupassen, außer dies. Weiß jemand, wie man das macht? Ich benutze Swift für iOS8.Set Textfarbe und Schriftart für UIDatePicker in iOS8/Swift
Antwort
Die API bietet keine Möglichkeit, dies zu tun. Sie können mit UIPickerView ein ziemlich überzeugendes Replikat erstellen, anstatt UIDatePicker zu verwenden. Se here
Ich sah das Problem, das Sie hatten und hatte ein ähnliches Problem. Mit Xcode 6.3.1 habe ich diesen Code in meinem verwendet und hat super funktioniert:
myPicker.backgroundColor = UIColor.whiteColor()
Falls das hilft.
Dies ändert die Hintergrundfarbe des Pickers selbst, nicht die Schriftart der Schriftfarbe. Persönlich denke ich, dass es dieses Typendesign schrecklich aussehen lässt. – Michael
Das ist, was ich brauchte Mann. Aber leider war deine Post so weit hier unten, dass ich sie woanders finden musste. Hoffentlich mehr Leute sehen es früher – Markinson
Sie können den Wert mit forKeyPath: "textColor" festlegen. Der Code:
datePicker.setValue(UIColor.whiteColor(), forKeyPath: "textColor")
wo picker ist Ihr UIDatePicker Objekt, und der erste Parameter ist die Farbe, die Sie mögen scheinen
das ändert alle Einträge mit Ausnahme des aktuellen Datums ... – Greg
Datumsänderung Modus, um etwas anderes eine erneute Unentschieden mit dem neu eingestellten Text zu erzwingen Farbe.
datePicker.setValue(UIColor.whiteColor(), forKeyPath: "textColor")
datePicker.datePickerMode = .CountDownTimer
datePicker.datePickerMode = .DateAndTime //or whatever your original mode was
try this:
/* set color for UIDatePicker font */
//text color of today string
self.datePicker.performSelector("setHighlightsToday:", withObject:Constants.Colors.mainHeaderColor)
//text color for hoglighted color
self.datePicker.performSelector("_setHighlightColor:", withObject:Constants.Colors.mainHeaderColor)
//other text color
self.datePicker.setValue(Constants.Colors.mainHeaderColor, forKey: "textColor")
Ich wollte, dies zu tun, sondern setzte es für, wenn jemand nun das Datum vor hat, oder nach jetzt. Ich musste die Daten neu laden, aber als ich es tat, stellte es sich auf die aktuelle DateTime ein, wenn ich das obige Beispiel verwendete.
Also was ich getan habe war einen temporären Wert eingestellt und dann nach dem Neuladen gesetzt. Es macht zwar einen animierten Effekt, aber es funktioniert. Wenn Sie eine bessere Art und Weise kennen, lassen Sie mich wissen ...
func dateChanged(sender: UIDatePicker) {
print(sender.date.description)
let tempDate = sender.date
let currentDate = NSDate()
if originalDate.isLessThanDate(currentDate) {
originalDate = sender.date
if sender.date.isGreaterThanDate(currentDate) {
sender.setValue(UIColor.blackColor(), forKeyPath: "textColor")
sender.datePickerMode = .CountDownTimer
sender.datePickerMode = .DateAndTime
sender.date = tempDate
sender.reloadInputViews()
}
}
if sender.date.isLessThanDate(currentDate) {
sender.setValue(UIColor.redColor(), forKeyPath: "textColor")
sender.datePickerMode = .CountDownTimer
sender.datePickerMode = .DateAndTime
sender.date = tempDate
sender.reloadInputViews()
}
}
Ich sollte beachten, dass ich die hier gefundenen Vergleichserweiterungen verwende: http://stackoverflow.com/questions/26198526/nsdate-comparison-using-swift – Alsop
Sie
datePicker.setValue(UIColor.whiteColor(), forKey: "textColor")
datePicker.setValue(false, forKey: "highlightsToday")
//for selector color
datePickerView.subviews[0].subviews[1].backgroundColor = UIColor.whiteColor()
datePickerView.subviews[0].subviews[2].backgroundColor = UIColor.whiteColor()
Siehe meine andere Antwort für erweiterte Lösung. – ObjectiveTC
verwenden kann ich glauben, dass dies die endgültige Lösung für die Countdown-Timer ist.
Es ist eine Erweiterung von Yildirimosmans Antwort.
//text color
datePicker.setValue(UIColor.whiteColor(), forKey: "textColor")
//picker background
datePicker.subviews[0].subviews[0].backgroundColor = UIColor.clearColor() //the picker's own background view
//dividers
datePicker.subviews[0].subviews[1].backgroundColor = UIColor.whiteColor()
datePicker.subviews[0].subviews[2].backgroundColor = UIColor.whiteColor()
//labels: "hours" and "min"
datePicker.subviews[0].subviews[3].setValue(UIColor.lightGrayColor(), forKey: "textColor")
datePicker.subviews[0].subviews[4].setValue(UIColor.lightGrayColor(), forKey: "textColor")
//refresh the tableview (to force initial row textColor to change to white)
datePicker.subviews[0].setNeedsLayout()
datePicker.subviews[0].layoutIfNeeded()
Sie brauchen nur zwei Zeilen Code setzen in viewdidLoad
/viewWillAppear
accoding wo Sie Datepicker verwenden.
dobDatePicker.setValue(UIColor.whiteColor(), forKeyPath: "textColor")
dobDatePicker.setValue(false, forKey: "highlightsToday")
Sehen Sie das Ergebnis wie folgt aus:
DIESES FUNKTIONIERT! sogar auf Swift 3 auf Xcode 8.x – ProteanDev
können Sie Erweiterungen verwenden, um Textfarbe zu erhalten und setzen wie unten
extension UIDatePicker {
var textColor: UIColor? {
set {
setValue(newValue, forKeyPath: "textColor")
}
get {
return value(forKeyPath: "textColor") as? UIColor
}
}
}
und dann die Farbe:
datePicker.textColor = .red
- 1. Set NavigationBarButton Titel Textfarbe
- 2. Set Überlaufmenü Textfarbe
- 3. Android Lollipop Set Statusleiste Textfarbe
- 4. Set NavigationBar title Schriftart
- 5. Set andere Schriftart und Farbe, um einen Teil eines Textview
- 6. iphone - set Label Schriftart
- 7. UIDatePicker und NSDate
- 8. UIDatePicker Ersatz für tvOS?
- 9. UIDatePicker und NSDate
- 10. Swift UIDatePicker für Textfeld Eingabe - wie UIDatePicker verschwinden zu lassen?
- 11. iPhone UIDatePicker style
- 12. Set Segoe UI Symbol Schriftart programmgesteuert
- 13. Schriftart und Schriftgradeinheit für Smartphones
- 14. doppelte Jahre und Tage in UIDatePicker
- 15. UITextField secureTextEntry Toggle Set falsche Schriftart
- 16. UINavigationBar ändern Titel Textfarbe und Schriftgröße
- 17. UIDatePicker in Monotouch
- 18. UIDatePicker Blick in iPhone
- 19. UIDatePicker Anpassung
- 20. UIDatePicker Lecks
- 21. Wie Hintergrund, Hintergrundfarbe und Textfarbe für Toast in Android anpassen
- 22. iOS 9.2 UIDatePicker Komponente aktuell ausgewählte Zeile der Komponentenzeile Textfarbe nicht geändert
- 23. android-tv Ändern von Textfarbe und Schriftart von Durchsuchen Fragment-Header
- 24. jQuery: Textfarbe für Eingabefeld animieren?
- 25. Benutzerdefinierte Textfarbe für bestimmte Indizes in QTreeView
- 26. Set Emacs defaut Schriftart Gesicht pro Puffer/Modus
- 27. Ändern Sie Textfarbe und Selektor in TabWidget
- 28. Ändern Sie Textfarbe für Ausnahmen in LogCat
- 29. Unterstreichen und ändern Textfarbe in Android TextView
- 30. Textfarbe für CCTexture2d einstellen initWithString
möglich Duplikat von - http://stackoverflow.com/questions/10844675/custom-ios-uidatepicker-using-uiappearance –
Haben Sie am Ende eine Lösung gefunden? – denislexic
@denislexic Nein, noch nicht. – Fenda