CoreGraphic - отображать пометку умлаут на i - PullRequest
1 голос
/ 10 ноября 2010

Я пытаюсь отобразить пометку umlaut на i в моей функции CoreGraphics: ï. Я пытался использовать это представление в юникоде (ï), но мне не удалось сделать это правильно.

вот мой код:

void drawColorString(CGContextRef ctx, NSString *text, UIColor *color, CGPoint pos){
    CGContextSaveGState(ctx);
    [color setFill];
    CGContextSelectFont(ctx, "Georgia-BoldItalic", 14, kCGEncodingMacRoman);
    CGContextSetTextDrawingMode(ctx, kCGTextFill);
    CGAffineTransform xform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
    CGContextSetTextMatrix(ctx, xform);
    CGContextShowTextAtPoint(ctx, pos.x, pos.y, [text UTF8String], text.length);
    CGContextRestoreGState(ctx);
}

это работает очень хорошо для обычных строк, но я получаю квадрат для каждого специального символа ...

Кто-нибудь может мне помочь?

Спасибо. R.

1 Ответ

1 голос
/ 10 ноября 2010

Рисование текста в Кварце отстой. Одна из причин заключается в том, что он не поддерживает Unicode: вы можете выбрать старый ASCII и MacRoman. Вы можете сделать это, посмотрев глифы на символы, но это совсем не весело, и я уверен, что есть несколько простых способов ошибиться.

В MacRoman вы можете нарисовать ï достаточно легко, но гораздо лучшим решением будет переключиться на Core Text.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...