iOS / OS X - 最后一行文本的对齐对齐

时间:2013-07-09 10:11:10

标签: ios objective-c macos core-text

我正在开发一个应用程序,我需要将所有文本行对齐。该应用程序将在图像的顶部显示2行文本,创建一个像图片的感觉广告。问题是这两行文本都需要证明是合理的,但第二行文本永远不会被证明是合理的。或者,如果我分别绘制两条线,那么两者都不合理。

如果您在CoreText中指定kCTJustifiedTextAlignment或在NSJustifiedTextAlignment指定NSTextField/View除了最后一行文字都是合理的。最后一行自然对齐。

有没有办法强制对文本字段或textview的最后一行进行对齐,那么填充视图的宽度?

我已经考虑过使用CTLine分别绘制每一行,并在那些上指定一些内容以使所有这些都合理,但我不确定如何去做。

由于

1 个答案:

答案 0 :(得分:3)

感谢omz的评论,我偶然发现了CTLineCreateJustifiedLine,这给了我想要的东西。如果某人有使用Cocoa Control(NSTextView)的解决方案,我仍然会感兴趣,但如果有任何问题,我会感到惊讶。

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

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