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