У меня возникла небольшая проблема, нарисуя текст на изображении. Когда я пытаюсь отобразить текст на английском языке, все работает отлично. Проблема в том, что мне нужно локализовать текст. Когда текст является русским, отображаются некоторые странные символы. Любая помощь будет оценена по достоинству.CGContextShowTextAtPoint и кириллический текст
Я использую следующий код, чтобы сделать текст:
CGContextSetRGBFillColor(context, 0.0, 0.0, 0.0, 1);
char* text = (char *)[addText cStringUsingEncoding:NSUTF8StringEncoding];
CGContextSelectFont(context, "Impact", 20, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextShowTextAtPoint(context, 20, h+addHeightBelow, text, strlen(text));
И это показывает следующее:
Таким образом, в результате, вы должны использовать основной текст, а код :
CTFontRef fontRef=CTFontCreateWithName((CFStringRef)@"Impact", 20.0f, NULL);
CGColorRef color=[UIColor blackColor].CGColor;
NSDictionary *attrDictionary=[NSDictionary dictionaryWithObjectsAndKeys:
(id)fontRef, (id)kCTFontAttributeName,
color, (id)kCTForegroundColorAttributeName,
nil];
NSAttributedString *stringToDraw=[[NSAttributedString alloc] initWithString:addText attributes:attrDictionary];
CTLineRef line=CTLineCreateWithAttributedString((CFAttributedStringRef)stringToDraw);
CGContextSetTextPosition(context, 20, h+addHeightBelow);
CTLineDraw(line, context);
CFRelease(line);
CFRelease(fontRef);
[stringToDraw release];
Ответы на этот вопрос могут быть полезными. http://stackoverflow.com/questions/6461980/how-to-display-international-accents-with-quartz-core-graphics-on-iphone – Yarlik