Zeichnen von Unicode-Zeichen auf dem iPhone

8

Warum ist es so schwer herauszufinden, wie Unicode-Zeichen auf dem iPhone gezeichnet werden, indem einfache Zeichenmetriken abgeleitet werden, z. B. wie breit jede abgebildete Glyphe in der Schriftart ihrer Wahl ist?

Es sieht so aus, als wäre es mit NSLayoutManager einfach, aber diese API ist anscheinend nicht auf dem Telefon verfügbar. Es sieht so aus, als würden die Leute eine private API benutzen, CGFontGetGlyphsForUnichars , die dich nicht über die Apple Gatekeeper in den App Store bringt.

Kann mich jemand auf eine Dokumentation hinweisen, die zeigt, wie das geht? Ich verliere schnell Haare.

Howard

    
hkatz 25.05.2009, 13:34
quelle

3 Antworten

3

Ich nahm an, dass der Ausschluss von CGFontGetGlyphsForUnichars
war eher ein Versehen als eine absichtliche Bewegung, aber ich bin nicht die Farm darauf setzen. Also benutze ich stattdessen

[NSString drawAtPoint:withFont:]; (in UIStringDrawing.h)

und

[NSString sizeWithFont];

Dies hat auch den Vorteil, eine anständige Substitution durchzuführen auf Zeichen, die in Ihrer Schriftart fehlen, etwas, das
CGContextShowGlyphs nicht tut.

    
Rhythmic Fistman 25.05.2009 14:37
quelle
0

Ich habe einen ziemlich passenden Ersatz für die private Funktion gemacht. Lesen Sie hier darüber nach: Ссылка

    
James Hu 02.08.2009 02:29
quelle
0

CoreText ist die Antwort, wenn Sie Unicode statt CGContextShowGlyphsAtPositions zeichnen möchten. Außerdem ist es besser als [NSString drawAtPoint:withFont:] , wenn Sie benutzerdefinierte Zeichnung benötigen. Hier ist ein komplettes Beispiel:

%Vor%     
icywire 16.03.2016 11:16
quelle

Tags und Links