CGContextShowText отображает перевернутый текст (зеркальное отображение) - PullRequest
4 голосов
/ 27 августа 2011

Не делая ничего, чтобы запросить перевернутый текст, 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 ]

7 голосов
/ 15 мая 2013

Эта «перевернутость» обычно появляется, когда API рендерит ваш cgContext сверху вниз, но каким-то образом вы рисуете снизу вверх.В любом случае, я использую 2-х строчное решение:

CGAffineTransform trans = CGAffineTransformMakeScale(1, -1);
CGContextSetTextMatrix(tex->cgContext, trans);
2 голосов
/ 13 марта 2017

Swift 3

    let context = UIGraphicsGetCurrentContext()!
    let textTransform = CGAffineTransform(scaleX: 1.0, y: -1.0)
    context.textMatrix = textTransform
0 голосов
/ 05 августа 2012

Лучшее решение этой проблемы - просто вызвать это в начале вашей процедуры рисования.(Обязательно звоните только один раз.)

    CGAffineTransform transform;
    transform = CGAffineTransformConcat(CGContextGetTextMatrix(ctx),
                                        CGAffineTransformMake(1.0, 0.0, 0.0,
                                                              -1.0, 0.0, 0.0));
    CGContextSetTextMatrix(ctx, transform);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...