2009-07-28 4 views
2

J'utilise coin en bas à gauche au lieu de en haut à gauche pour dessiner sur iPhone en utilisant les éléments suivants:texte Upside down - Quartz/iPhone - CGContextScaleCTM

CGContextTranslateCTM(context, 0.0, 200.0); 
CGContextScaleCTM(context, 1.0, -1.0); 

Bien que cela fonctionne très bien pour changer mon origine pour dessiner un tableau, mais l'étiquetage apparaît à l'envers.

Comment utiliser mon système de coordonnées mais aussi obtenir un texte normal pour étiqueter correctement le tableau que je dessine?

Répondre

2

Utilisez CGContextSaveGState et CGContextRestoreGState pour vous assurer
que la mise à l'échelle des marques communautaires applique à vos graphiques et non votre texte.

4

Oui ive vient tout juste de résoudre le même problème. L'astuce est de défaire brièvement la « inversion » juste avant d'écrire les étiquettes:

NSPoint p = NSMakePoint(x+5,5); 
CGContextSaveGState(ctx); 
CGContextTranslateCTM(ctx, 0, b.origin.y+y+25); // Flip temporarily for text 
CGContextScaleCTM(ctx, 1.0, -1.0); 
[string drawAtPoint: p withAttributes:nil]; // Draw your strings 
CGContextRestoreGState(ctx);     // Flip back 

Notez la valeur b.origin.y est la hauteur de la zone d'affichage, x et y sont les positions des étiquettes

Questions connexes