Wie man monospaced zahlen in UILabel auf iOS 9
Auf der WWDC 2015, es war eine Sitzung über die neue "San Francisco" system-font in iOS 9. Es nutzt die proportionale Anzahl rendering anstelle von monospaced-Nummern standardmäßig, wenn Links gegen die iOS-9-SDK. Es ist eine bequeme Initialisierung auf NSFont genannt NSFont.monospacedDigitsSystemFontOfSize(mySize weight:)
können verwendet werden, um explizit zu aktivieren monospaced-Nummer anzuzeigen.
Konnte ich allerdings nicht finden, die UIKit
äquivalent für diese auf UIFont
.
- habe versucht, mit einem font-descriptor in einen Spielplatz, aber dieser ist in einen Unfall mit EXC_BAD_ACCESS in Xcode 7 Beta:
var fontDescriptor = UIFontDescriptor().fontDescriptorWithSymbolicTraits(.TraitMonoSpace)
- Ich habe es geschafft zu erstellen UIFontDescriptor mit .TraitMonoSpace wie du Sie erwähnt hast, aber das scheint nicht die Lösung zu diesem Problem, da ich mich eigentlich nicht zuweisen wollen, eine Besondere Monospace-schriftart, um das ganze Etikett, aber es zu ändern ist-stellige rendering-Verhalten, damit es rendert zahlen in einer monospaced-Modus.
- Dies wurde behoben mit Xcode 7 beta 4. UIFont hat jetzt die gleiche monospacedDigitsSystemFontOfSize:Gewicht: Methode als NSFont.
- Das ist nicht die Rechtschreibung. Es ist monospacedDigitSystemFontOfSize:Gewicht: (ohne 's' nach-Stellig).
- stackoverflow.com/a/50792536/3939807, Lesen Sie diese Antwort. Das funktioniert für beliebige benutzerdefinierte Schriftarten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Praktisch
UIFont
Erweiterung:Verwendung mit
@IBOutlet
Eigenschaften:Neueste version auf GitHub.
Dies ist jetzt in
UIFont
seit iOS 9:zB:
oder Swift:
Akzeptierte Lösung funktioniert Super, aber stürzt ab mit compiler-Optimierung auf Schnell gesetzt(Standard für Release-builds). Schrieb den code so und jetzt tut es nicht:
Es wurde einiges Umbenennung in Swift 4, so dass die Attribute sieht nun wie folgt aus:
Hinweis: Die Methode in der derzeit akzeptierte Antwort hat begonnen Absturz für mich in Xcode 7.3 Swift (2.2), nur in Release-builds. Die Beseitigung der Vermittler
monospacedDigitFontDescriptor
extension-variable die das Problem behebt.Etwas verbesserte version des @Rudolf Adamkovic code, der prüft, iOS-version:
monospacedDigitFontDescriptor
gehört zu der system-API.Oder, benutzen Sie einfach Helvetica. Es hat immer noch nicht-proportional-zahlen und arbeitet rückwirkend auf ältere iOS-version.