2010-11-10 12 views
1

Je dois essayer d'afficher un tréma sur un i dans ma fonction CoreGraphics: ï. J'ai essayé d'utiliser sa représentation Unicode (ï), mais je ne parviens pas à le faire correctement.CoreGraphic - afficher la marque d'un tréma sur un i

voici mon code:

void drawColorString(CGContextRef ctx, NSString *text, UIColor *color, CGPoint pos){ 
    CGContextSaveGState(ctx); 
    [color setFill]; 
    CGContextSelectFont(ctx, "Georgia-BoldItalic", 14, kCGEncodingMacRoman); 
    CGContextSetTextDrawingMode(ctx, kCGTextFill); 
    CGAffineTransform xform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0); 
    CGContextSetTextMatrix(ctx, xform); 
    CGContextShowTextAtPoint(ctx, pos.x, pos.y, [text UTF8String], text.length); 
    CGContextRestoreGState(ctx); 
} 

cela fonctionne très bien pour les chaînes régulières, mais je reçois un carré pour chaque caractère spécial ...

Quelqu'un peut-il me aider?

Merci. R.

Répondre

1

Dessiner du texte en quartz craint. Une raison est qu'il ne prend pas en charge Unicode: vos choix sont simples ASCII et MacRoman. Vous pourriez être en mesure de le faire en regardant les glyphes pour les personnages, mais ce n'est pas amusant du tout et je parie qu'il existe des moyens faciles de se tromper.

Vous pouvez dessiner un ï dans MacRoman assez facilement, mais une meilleure solution est de passer au Core Text.

+0

merci pour votre réponse. Je ne suis pas familier avec Core Text mais je l'ai lu nécessite iOS 3.2 et j'ai besoin de cibler iOS 3.0 pour mon application. C'est pourquoi je suis coincé avec Quartz. Je serais plus qu'heureux de passer à quelque chose de plus simple ... – Romain

+0

Ok vous aviez raison. Je quitte Quartz, et je viens d'utiliser drawInRect: withFont: méthode de NSString – Romain