Iphone CoreText中的行距和段落对齐

Iphone CoreText中的行距和段落对齐,iphone,cocoa,cocoa-touch,ipad,core-text,Iphone,Cocoa,Cocoa Touch,Ipad,Core Text,我正在使用CoreText渲染多个文本列。但是,当我将第1段的第一个字母设置为粗体、比正文其余部分大的字体时,我遇到了两个问题(均在附图中可见): 第一行下面的间距太大(我知道这是因为第一个字符可能是g、y、p、q等) 第一行下面的行现在不会与下一列中的相应行对齐 任何关于如何克服这两个问题的建议都将不胜感激,谢谢。 解决这一问题的唯一方法似乎是采用一种变通方法,即为第一列创建3个框架,1个用于W,1个用于第一句的其余部分,1个用于第一列的其余部分。根据文档,kCTParagraphStyleS

我正在使用CoreText渲染多个文本列。但是,当我将第1段的第一个字母设置为粗体、比正文其余部分大的字体时,我遇到了两个问题(均在附图中可见):

  • 第一行下面的间距太大(我知道这是因为第一个字符可能是g、y、p、q等)

  • 第一行下面的行现在不会与下一列中的相应行对齐

  • 任何关于如何克服这两个问题的建议都将不胜感激,谢谢。

    解决这一问题的唯一方法似乎是采用一种变通方法,即为第一列创建3个框架,1个用于W,1个用于第一句的其余部分,1个用于第一列的其余部分。

    根据文档,kCTParagraphStyleSpecifierMaximumLineHeight应该解决了这个问题,但不幸的是似乎没有解决至少在IOS 4.3上工作

    CTParagraphStyleSetting theSettings[5] = 
    {
        { kCTParagraphStyleSpecifierParagraphSpacing, sizeof(CGFloat), &spaceBetweenParaghraphs },
        { kCTParagraphStyleSpecifierParagraphSpacingBefore, sizeof(CGFloat), &topSpacing },
        { kCTParagraphStyleSpecifierLineSpacing, sizeof(CGFloat), &spaceBetweenLines },
        { kCTParagraphStyleSpecifierMinimumLineHeight, sizeof(CGFloat), &lineHeight},
        { kCTParagraphStyleSpecifierMaximumLineHeight, sizeof(CGFloat), &lineHeight}
    };
    
    CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(theSettings, 5);
    
    平心而论,文档中说它在OS v10.5及更高版本中可用

    KCTParagraphStyleSpecifier最大线宽

    帧中任何行将占据的最大高度,无论字体大小或任何附加图形的大小。超过此高度的图示符和图形将与相邻行重叠。最大高度0表示没有行高限制。此值始终为非负。
    键入:CGFloat。
    默认值:0.0。
    应用:CTFramesetter.
    在Mac OS X v10.5及更高版本中提供。

    以CTParagraphStyle.h.声明。

    请出示您的代码好吗?