Swift NSAttributedString benutzerdefinierte Schriftarten
Ich gelesen habe, um für unterschiedliche Lösungen, aber nichts scheint zu funktionieren. Dieser code erstellt ein null-Ausnahme:
[NSFontAttributeName: UIFont(name: "Raleway-SemiBold", size: 16)!]
Habe ich die Schriftarten ordnungsgemäß installiert und Sie korrekt in der app (Ziel).
Ich versucht, um die Anwendung von Schriften in der plist
aber nichts passiert. Ich kann nicht Bearbeiten Sie die Elemente im array: (they are item0 : string : Raleway-SemiBold.tff)
.
Also im Grunde bin ich stecken... Manchmal auch Swift-und Apple-Umgebungen sind ideal für einen Programmierer, in anderen Zeiten (die meiste Zeit), Sie sind sooo fehlerhaft und müssen so viele workarounds zu erreichen, die zu erwartenden Ergebnisse.
Vielen Dank im Voraus für jede Hilfe.
- Haben Sie sichergestellt, dass
UIFont(name: "Raleway-SemiBold", size: 16)
ist nichtnil
? – Keine Beleidigung gemeint, aber ich bezweifle, dass Apple oder Swift ist der Schuldige 🙂 - Keinen Anstoß genommen, ich weiß nicht Schuld von Apple oder Swift, musste ich eine Menge tun, um die Problemumgehungen für dieses Projekt und das war nur der moment, wenn ich hatte, es zu lassen, alle raus :). Nun, ich denke, Sie sind null, da der compiler sagt, dass unerwartet gefunden nil while unwrapping. Aber die Schriften sind in der app enthalten und Sie arbeiten in der Schnittstelle und so weiter.
- Ein häufiger Fehler ist die Angabe der falschen schriftart name in
UIFont(name: ...)
– es ist nicht der name der Datei. Aber es muss doch Dutzende von Q&A mit der genauen Anleitung ... - Nun, ich habe gerade durchgeschleift der fontNames und meine Schrift dort nicht aufgeführt wird...EDIT: eigentlich nur 4 von 9 die dort aufgeführt sind
- Was meinst du mit "ich habe versucht, hinzufügen der Anwendung zur Verfügung gestellt Schriftarten in der plist ..." und "ich kann den Namen der Elemente im array" ?
- Ich habe versucht, hinzufügen des vorgeschlagenen Schriften application key in der plist, und wo ich es gelesen habe sagte, es sollte ein array mit den Namen der schriftart. Das kann ich nicht name ist ein Tippfehler, das werde ich korrigieren
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist immer eine Ausnahme, weil
UIFont(name: "Raleway-SemiBold", size: 16)
zurücknil
- und Sie sind Kraft-unwrapping es mit!
.Verwenden Sie stattdessen die bedingte Auspacken:
Können Sie
UIFont
'sfamilyNames()
undfontNamesForFamilyName(_:)
Methoden, um die exakte Zeichenfolge erforderlich.Swift 4
Für Swift 3, hier ist ein update, das für mich gearbeitet:
Zuerst richten Sie die schriftart und erstellen Sie dann eine
textAttribute
mit derNSFontAttributeName
:Können Sie dann anwenden
textAttribute
zu Ihrem label, textfield etc.Sie Nur schreiben müssen Sie die richtige Zeichenfolge name der schriftart.
Nicht schreiben, der name, die font-Datei-name. (wie bodoni-mt-bold.ttf seiner der name der Datei die ich runtergeladen habe von jedem Standort aus).
Um herauszufinden, die genaue schriftart Folgen Sie dem Bild unten.
Gehen Sie zu Ihrem label, wählen Sie es und gehen Sie auf benutzerdefinierte schriftart und dann sehen, dass der name Ihrer benutzerdefinierten schriftart in der Familie. wenn Sie Ihre eigene schriftart name ist es dann kopieren, die Namen und Vergangenheit, ist es als string, wo u es verwenden möchte. (Hinweis: Sie können nicht kopieren Sie die schriftart-name-text, den Sie schreiben müssen, wo sonst dann an ihm vorbei)