Я работаю в своего рода генераторе QR-кода, это приложение для Mac.Я знаю, как рисовать текст, но я не знаю, как установить межстрочный интервал.
Мой код:
// Prepare font
CTFontRef font = CTFontCreateWithName(CFSTR("LucidaSansUnicode"), 16, NULL);
// Create Path
CGMutablePathRef gpath = CGPathCreateMutable();
CGPathAddRect(gpath, NULL, CGRectMake(10, 0, pixelsWidth, pixelsHigh));
CGContextSetTextDrawingMode (newcontext, kCGTextFill);
CGContextSetGrayFillColor(newcontext, 0.0, 1.0);
// Create an attributed string
CFStringRef keys[] = { kCTFontAttributeName };
CFTypeRef values[] = { font };
CFDictionaryRef attr = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values,
sizeof(keys) / sizeof(keys[0]), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFAttributedStringRef attrString = CFAttributedStringCreate(NULL, stringCode, attr);
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attrString);
CTFrameRef theFrame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, CFAttributedStringGetLength(attrString)), gpath, NULL);
// Draw the string
CTFrameDraw(theFrame, newcontext);
Я искал, но ничего не нашел.Может быть, я должен использовать CTLine?
Обновление:
Хорошо, я нашел это, но это не решает мою проблему, я хочу меньше 0,0 точки межстрочного интервала.
CTTextAlignment paragraphAlignment = kCTLeftTextAlignment;
CGFloat maxLine = 0.0;
CTParagraphStyleSetting setting[2] = {
{kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), ¶graphAlignment},
{kCTParagraphStyleSpecifierLineSpacingAdjustment, sizeof(CGFloat), &maxLine}
};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(setting, 2);