0
我在NSAttributedString中为段落应用正确的顶部和底部间距有一个微不足道的问题。我正在使用此代码设置段落属性:定义核心文本段落而不使用换行符?
int sf = sizeof(CGFloat);
CTParagraphStyleSetting settings[ParagraphStylesSupported] =
{
{ kCTParagraphStyleSpecifierAlignment, sizeof(QuartzTextAlignment), &style.textAlignment },
{ kCTParagraphStyleSpecifierParagraphSpacingBefore, sf, &marginTop},
{ kCTParagraphStyleSpecifierParagraphSpacing, sf, &marginBot},
{ kCTParagraphStyleSpecifierMinimumLineHeight, sf, &lineHeight},
{ kCTParagraphStyleSpecifierLineSpacing, sf, &lineSpacing},
{ kCTParagraphStyleSpecifierFirstLineHeadIndent, sf, &style.firstLineIndent},
};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(settings, ParagraphStylesSupported);
[string addAttribute:(NSString*)kCTParagraphStyleAttributeName value:(id)paragraphStyle range:item.range];
CFRelease(paragraphStyle);
正在按预期方式应用文本属性。 但也有一些问题与段落对齐:
后对方- 段落是不是地方,但除非在该属性范围的开头换行符\ n字符流“内联”。
- 当我添加换行符时,段落正确地放置在另一个下方,但换行符高度被添加到间距'ParagraphSpacing'间隙中。
- kCTParagraphStyleSpecifierParagraphSpacingBefore还影响段落范围内的换行符。
什么核心文本布局引擎解释为段落指示符? 属性字符串中是否每个换行符都是?
似乎是真的。我的另外一个问题是:为什么kCTParagraphStyleSpecifierParagraphSpacingBefore从不为NSAttributedString的第一段工作? – Lukasz 2012-02-24 09:09:51
我不知道。 – 2012-02-24 09:13:18