8 votes

iPhone - Dessiner du texte avec CGContext : ok mais... en miroir

Lorsque je dessine un texte à l'aide de CGContext, il est dessiné en miroir.

J'ai essayé d'appliquer quelques transformations, puis il est bien dessiné, mais ensuite le reste du dessin et toutes les coordonnées semblent être mal dessinés.

J'ai essayé de sauvegarder et de restaurer le contexte, avant et après avoir dessiné le texte (et appliqué la transformation), mais cela ne sert à rien.

Comment dessiner un texte sur une vue en utilisant CGContext sans affecter le reste du dessin, ni les coordonnées CGPoint à l'écran pour ce texte ?

13voto

samfu_1 Points 882

Pouvez-vous préciser ce que vous entendez par "miroir" ? Voici du code pour dessiner un texte noir. Il ne devrait pas être "reflété".

CGRect viewBounds = self.bounds;
CGContextTranslateCTM(ctx, 0, viewBounds.size.height);
CGContextScaleCTM(ctx, 1, -1);
CGContextSetRGBFillColor(ctx, 0.0, 1.0, 0.0, 1.0);
CGContextSetLineWidth(ctx, 2.0);
CGContextSelectFont(ctx, "Helvetica", 10.0, kCGEncodingMacRoman);
CGContextSetCharacterSpacing(ctx, 1.7);
CGContextSetTextDrawingMode(ctx, kCGTextFill);
CGContextShowTextAtPoint(ctx, 100.0, 100.0, "SOME TEXT", 9);

9voto

Je pense que vous devez inverser la matrice du texte :

CGAffineTransform transform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, transform);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X