So wird ein UIFont-Objekt in Swift in CTFont umgewandelt

8

Ich versuche, Code nach Swift zu portieren, der UIFont und CTFont verwendet, und das (in Objective-C erfolgreich) verwendet einfache überbrückte Casts, um von einem zum anderen zu gelangen und umgekehrt.

Betrachten Sie zum Beispiel diesen Code (in einer UIFontDescriptor-Kategorie):

%Vor%

Ich bin noch nicht in der Lage, herauszufinden, wie ich das in Swift so ausdrücken soll, dass es tatsächlich kompiliert wird. Das Folgende zumindest nicht:

%Vor%

Fehler: 'UIFont' kann nicht in 'CTFont' konvertiert werden

    
Christopher Lenz 27.06.2014, 16:40
quelle

2 Antworten

1

Dies wurde anscheinend in einer späteren Version von Swift und / oder CoreText behoben. Zumindest funktioniert es jetzt in meinem Test mit Xcode 7.0.1.

    
Christopher Lenz 07.10.2015, 14:11
quelle
1

Versuchen Sie es. Sie können die Werte nicht einfach von einem Typ zum anderen zwingen. Wenn Sie jedoch einen CTFont aus dem Deskriptor und der Größe erstellen, scheint es Ihnen ein gültiges Array zu geben, selbst wenn Sie keine Matrix für Transformationen (den Parameter nil) enthalten

%Vor%

Wie beim Erstellen des CTFontDescriptor würde ich CTFontDescriptorCreateWithNameAndSize oder CTFontDescriptorCreateWithAttributes verwenden, je nachdem, was Sie ursprünglich angegeben haben. Letzteres verwendet ein einfaches NSDictionary, und das erstere verwendet nur den Namen und die Größe einer Schriftart.

Um von einer vorhandenen Schriftart (nennen wir sie originalFont ) zu gehen, gehen Sie einfach so vor, um einen Deskriptor zu erhalten:

%Vor%     
Dylan Gattey 27.06.2014 17:03
quelle

Tags und Links