CGContextShowText呈现倒置文本(镜像)

时间:2011-08-27 09:03:23

标签: ios ipad core-graphics

如果没有我做任何请求颠倒文本的事情,CGContextShowText就是以这种方式绘制它。它是一个垂直的镜像图像。

float font_size = 19.;
CGContextSelectFont (context, "Helvetica", font_size, kCGEncodingMacRoman);
CGContextSetTextDrawingMode (context, kCGTextFill); 
CGContextSetRGBStrokeColor (context, 255, 0, 0, 0); 
CGContextSetRGBFillColor (context, 255, 0, 0, 0); 
CGContextSetTextPosition (context, x, y);
CGContextShowText (context, cstring, strlen(cstring));

我该如何解决这个问题?另外为什么这是默认的绘图模式?

感谢。

3 个答案:

答案 0 :(得分:7)

当API从上到下渲染到您的cgContext时,这种“颠倒”通常会发挥作用,但不知何故,您从下到上绘制。无论如何,我使用的2线解决方案是:

CGAffineTransform trans = CGAffineTransformMakeScale(1, -1);
CGContextSetTextMatrix(tex->cgContext, trans);

答案 1 :(得分:2)

Swift 3

    let context = UIGraphicsGetCurrentContext()!
    let textTransform = CGAffineTransform(scaleX: 1.0, y: -1.0)
    context.textMatrix = textTransform

答案 2 :(得分:0)

解决此问题的最佳方法是在绘制例程的开头简单地调用它。 (确保只调用一次。)

    CGAffineTransform transform;
    transform = CGAffineTransformConcat(CGContextGetTextMatrix(ctx),
                                        CGAffineTransformMake(1.0, 0.0, 0.0,
                                                              -1.0, 0.0, 0.0));
    CGContextSetTextMatrix(ctx, transform);