如果没有我做任何请求颠倒文本的事情,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));
我该如何解决这个问题?另外为什么这是默认的绘图模式?
感谢。
答案 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);