颠倒的文本 - Quartz / iPhone - CGContextScaleCTM

时间:2009-07-28 18:43:52

标签: iphone quartz-graphics

我使用左下角而不是左上角使用以下内容在iPhone上绘图:

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

虽然这适用于更改我的原点以绘制图表但标签显示为颠倒。

如何使用我的坐标系,还能获得正常的直文,以正确标记我正在绘制的图表?

2 个答案:

答案 0 :(得分:4)

是的,我刚刚解决了同样的问题。诀窍是在写标签之前暂时撤消“反转”:

    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

注意b.origin.y值是可视区域的高度,x和y是标签的位置

答案 1 :(得分:2)

使用CGContextSaveGStateCGContextRestoreGState确保确定 CTM缩放适用于您的图形,而不适用于您的文本。