2013-07-09 66 views
2

我正在开发一个应用程序,我需要所有文本行以进行对齐。该应用程序将在图像顶部显示2行文字,从而创造出像图片一样的广告。问题是,这两行文本都需要证明,但第二行文本永远不会被证明。或者,如果我分别画两条线,那么两者都不合理。iOS/OS X - 在文本的最后一行对齐对齐

如果您在CoreText中指定了kCTJustifiedTextAlignment,或者在NSTextField/View中指定了NSJustifiedTextAlignment,但除最后一行文本外都是有道理的。最后一行自然对齐。

是否有办法强制textfield或textview的最后一行被证明是正确的,所以填充视图的宽度?

我想过使用CTLine来分别绘制每一行,并指定一些东西来使它们全部合理,但我不知道如何去做。

感谢

+1

如果你走CoreText /'CTLine'路线,你可能可以使用'CTLineCreateJustifiedLine'。 – omz

+0

嗯,是的,我刚刚发现了这个,它运行良好,几乎是我以后的!这比我想象创建CTLine更简单。 –

回答

3

由于OMZ的评论我碰到CTLineCreateJustifiedLine迷迷糊糊的,这给了我正是我想要的。如果有人使用Cocoa Control(NSTextView),我仍然会感兴趣,但是如果有任何tbh,我会感到很惊讶。

CTLineRef line = CTLineCreateWithAttributedString((__bridge CFAttributedStringRef)attString); 
line = CTLineCreateJustifiedLine(line, 1.0, dirtyRect.size.width); 

CTLineDraw(line, context); 
CFRelease(line);