8
votes

IPhone CGContextShowTextatPoint de caractères japonais

Je travaille sur une application où j'utilise CGContexTShowtextatPoint Pour afficher du texte à l'écran. Je veux aussi afficher également des caractères japonais, mais cgcontextShowtextatpoint prend comme entrée une chaîne C. Donc a) comment puis-je changer les caractères japonais en une chaîne C? Si cela n'est pas possible, b) Comment puis-je imprimer manuellement des caractères japonais à l'écran (dans la méthode Drawrect).

Merci d'avance.


0 commentaires

4 Réponses :


5
votes

Caretext peut vous aider:

  1. CTFONTGETAGLYPHSFORCARACTERS (iOS 3.2) Maps Caractères Unicode aux glyphes
  2. ctfontDrawglyphs (iOS 4.2 à partir de l'avant) dessine les glyphes dans un CGContext.

    nb. CGContextShowglyphs devrait fonctionner, mais je n'ai jamais trouvé de moyen de convertir mes unichars en glyphes. Plus sur ce ici :

    Ancient, Pre iOS 3.2 Réponse

    Vous devez utiliser Uikit pour cela.

    Consultez [Nstring DrawatPoint: ...] pour commencer.

    Ce Cette question est utile aussi.

    Je ne sais pas ce qu'ils pensaient avec le texte Coregraphic Stuff, il est inutile.


7 commentaires

Merci :) ! Après avoir lu un peu dans les documents, il semble que j'ai codé quelque chose sur les lignes de la classe Nsattributedstring, donc je suppose maintenant que je devrais changer tout mon code à cela :(


Je t'en prie. p.s. Il n'y a pas de nsattributedstring sur l'iPhone, alors vérifiez Uilabel.


Les routines de dessin de texte graphiques principales sont autour du Mac pendant un long moment, je suppose que la prise en charge d'unicode n'est pas commune, il n'est donc pas trop surprenant qu'ils ne soutiennent que le jeu de personnages qu'ils font. Vous pouvez également être en mesure d'imprimer des caractères personnalisés avec CGContextShowglyPointPoint (), mais le défi consiste à générer les glyphes sur l'iPhone. Cet article a un exemple: gogo-robot.com/devblog/?p=5 < / a>


Merci Brad, après avoir examiné un peu je pense que je vais réellement aller avec la chose CGContexTShowglyPryPoint car elle convient à mon code. Tant que je peux comprendre la chose des glyphes ...


Bonne chance de convertir votre caractère unicode en indices de glyphe. L'interface CG pour cela semble être privée. Cependant, peut-être que Kiyoshi a sa propre police japonaise (WOW!) Et peut duper le code de la conversion.


Ouais abandonné la conversion en glyphes. Fini par utiliser le [Nstring DrawatPoint: withfont:] et cela fonctionne bien :)


CGFONTGETGLYPHSFORUNICHARS n'est pas très bon, c'est-à-dire qu'il échoue toujours pour des personnages en dehors de la plage d'ASCII Typique 0-> 127. Si un glyphe n'a pas pu être encodé, un La valeur de 0 est transmise à l'index correspondant de la matrice de glyphes et la fonction renvoie false. Il incombe à l'appelant de gérer les propriétés Unicode des caractères d'entrée.



1
votes

Pour ce que ça vaut la peine, j'ai passé beaucoup de temps à essayer d'obtenir des personnages japonais bien travailler dans la base centrale et n'aimait pas où il m'a laissé.

À la fin, j'ai changé d'utiliser des Uilabels pour gérer le texte. Toutes les trucs de base-graphique dont j'avais besoin pourraient être reproduits à l'aide du support de transformation et d'animation et, à la fin, le code résultant était beaucoup plus simple.

Cela peut ne pas être approprié pour votre situation, mais cela vaut la peine d'être envisagé.


0 commentaires

3
votes

J'ai pu obtenir cela en train de travailler en utilisant une réimplémentation de CGFontgegeglyPhsForunicichera par Jens Egeblad: GlyphDrawing.mm

Première charge dans une police japonaise en tant que fichier OTF à partir de l'appuie sur l'application: xxx

alors vous pouvez convertir votre texte UNICHAR en glyphes et les dessiner: xxx


1 commentaires

Où puis-je télécharger GlyphDrawing.mm? Le lien est cassé.



0
votes

Ceci vous aide peut-être% Topic Starter%. Merci à Rhythmic Fistman pour de grands conseils! XXX


0 commentaires