CGContextShowText呈现倒置文本(镜像)

Nem*_*emo 4 core-graphics ipad ios

如果没有我做任何要求颠倒文本的事情,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));
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?另外为什么这是默认的绘图模式?

谢谢.

bob*_*obo 8

当API从上到下呈现给你的cgContext时,这种"颠倒"通常会发挥作用,但不知怎的,你是从下到上绘制的.无论如何,我使用的2线解决方案是:

CGAffineTransform trans = CGAffineTransformMakeScale(1, -1);
CGContextSetTextMatrix(tex->cgContext, trans);
Run Code Online (Sandbox Code Playgroud)


Wil*_*ley 0

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

    CGAffineTransform transform;
    transform = CGAffineTransformConcat(CGContextGetTextMatrix(ctx),
                                        CGAffineTransformMake(1.0, 0.0, 0.0,
                                                              -1.0, 0.0, 0.0));
    CGContextSetTextMatrix(ctx, transform);
Run Code Online (Sandbox Code Playgroud)