Ich arbeite an einer App, in der ich CGContextShowTextAtPoint
verwende, um Text auf dem Bildschirm anzuzeigen. Ich möchte auch japanische Zeichen anzeigen, aber CGContextShowTextAtPoint
verwendet als Eingabe eine C-Zeichenfolge. Also entweder A) Wie ändere ich japanische Zeichen in eine C-Zeichenfolge? Wenn dies nicht möglich ist, B) Wie kann ich manuell japanische Zeichen auf den Bildschirm drucken (innerhalb der drawRect-Methode).
Vielen Dank im Voraus.
CoreText kann Ihnen helfen:
CTFontGetGlyphsForCharacters
(ab iOS 3.2) ordnet Unicode-Zeichen Glyphen zu CTFontDrawGlyphs
(ab iOS 4.2) zeichnet die Glyphen in einen CGContext. NB. CGContextShowGlyphs
sollte funktionieren, aber ich habe nie einen Weg gefunden, meine UniChars in Glyphen umzuwandeln. Mehr dazu hier :
Ancient, vor iOS 3.2 Antwort
Sie müssen dafür UIKit verwenden.
Checke [NSString drawAtPoint:...]
aus, um loszulegen.
Diese Frage SO ist ebenfalls hilfreich.
Ich weiß nicht, was sie mit dem CoreGraphic Textkram gedacht haben, es ist nutzlos.
Ich konnte dies mit einer Neuimplementierung von CGFontGetGlyphsForUnichars von Jens Egeblad erreichen: GlyphDrawing.mm
Laden Sie zuerst eine japanische Schriftart als eine Otf-Datei aus dem App-Bundle:
%Vor%Dann kannst du deinen unichar-Text in Glyphen umwandeln und sie zeichnen:
%Vor%Was es wert ist, habe ich lange versucht, japanische Charaktere in CoreGraphics gut funktionieren zu lassen, und mochte nicht, wo es mich verlassen hat.
Am Ende habe ich UILabels benutzt, um den Text zu bearbeiten. Alle CoreGraphics-ähnlichen Sachen, die ich brauchte, konnten mit der Transform & amp; Animation Unterstützung, und am Ende war der resultierende Code viel einfacher.
Es mag für Ihre Situation nicht angemessen sein, aber es lohnt sich, darüber nachzudenken.
Das hilft vielleicht%% starter%. Danke an Rhythmic Fistman für den tollen Rat!
%Vor%