2011-08-31 12 views
8

Cuando dibujo texto usando CGContext, se dibuja en espejo.iPhone - Dibuje texto con CGContext: ok pero ... reflejado

Intenté aplicar algunas transformaciones, luego se dibuja bien, pero el resto del dibujo y todas las coordenadas parecen estar mal.

Intenté guardar y restaurar el contexto, antes y después de dibujar el texto (y aplicar la transformación), pero eso no ayuda.

¿Cómo se debe dibujar texto en una vista usando CGContext sin afectar el resto del dibujo, ni los coords CGPoint en pantalla para ese texto?

+0

también consigo una escritura invertida en el eje Y. ¿Cómo puedo arreglar esto? – Bogdan

Respuesta

12

¿Puedes aclarar a qué te refieres con 'espejo'? Aquí hay un código para dibujar un texto negro. No debe ser 'reflejado'.

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

Eso está muy cerca de lo que hago. Trataré esta noche tu pedazo de código. – Oliver

+0

El texto es verde :( –

+1

debido a CGContextSetRGBFillColor (ctx, 0.0, 1.0, 0.0, 1.0); – iosDeveloper

8

Yo creo que hay que invertir la matriz de texto:

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

¡Gracias por esta sencilla solución! Funcionó como un amuleto. – stonecompass