2010-09-13 60 views
0

你可以用CTFontGetLeading(aCTFont)得到它,但你如何設置它?如何在CoreText中設置主角?

任何人都可以解釋一下嗎?

是否有其他解決方法?您是否需要手動設置線條之間的空間,或許?

回答

2

我發現當我在一個段落中使用多個字體時,設置最小和最大行高度是不夠的。我還必須將行間距設置爲0,否則這些行將具有不一致的前導。這裏是我的完整解決方案:

CGFloat lineHeight = 68.0f; 
CGFloat lineSpacing = 0.0f; 

CTParagraphStyleSetting setting[4] = { 
    {kCTParagraphStyleSpecifierMaximumLineHeight, sizeof(CGFloat), &lineHeight}, 
    {kCTParagraphStyleSpecifierMinimumLineHeight, sizeof(CGFloat), &lineHeight}, 
    {kCTParagraphStyleSpecifierMaximumLineSpacing, sizeof(CGFloat), &lineSpacing}, 
    {kCTParagraphStyleSpecifierMinimumLineSpacing, sizeof(CGFloat), &lineSpacing} 
}; 

CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(setting, 4); 

NSRange fullRange = NSMakeRange(0, [mutString length]); 

[mutString addAttributes:[NSDictionary dictionaryWithObjectsAndKeys:(__bridge id)paragraphStyle, 
          (NSString*)kCTParagraphStyleAttributeName, nil] 
        range:fullRange]; 

CFRelease(paragraphStyle);