2011-08-31 3 views
8

Quando disegno del testo usando CGContext, viene disegnato in modo speculare.iPhone - Disegna un testo con CGContext: ok ma ... rispecchiato

Ho provato ad applicare alcune trasformazioni, quindi si disegna bene, ma poi il resto del disegno e tutte le coordinate sembrano essere pessime.

Ho provato a salvare e ripristinare il contesto, prima e dopo aver disegnato il testo (e la trasformazione aplying), ma questo non aiuta.

Come si deve disegnare del testo su una vista utilizzando CGContext senza influenzare il resto del disegno, né le coordina CGPoint su schermo per quel testo?

+0

Ho anche il testo speculare sull'asse Y. Come posso risolvere questo? – Bogdan

risposta

12

Puoi chiarire cosa intendi come "specchiato"? Ecco un codice per disegnare del testo nero. Non dovrebbe essere "specchiato".

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); 
+0

Questo è davvero vicino a quello che faccio. Proverò stasera il tuo pezzo di codice. – Oliver

+0

Il testo è verde :( –

+1

a causa della CGContextSetRGBFillColor (CTX, 0.0, 1.0, 0.0, 1.0); – iosDeveloper

8

Credo che bisogna invertire la matrice di testo:

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

Grazie per questa soluzione facile! Ha funzionato come un fascino. – stonecompass