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



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

如果在CoreText中指定kCTJustifiedTextAlignment或在NSTextField/View上指定NSJustifiedTextAlignment,则除最后一行文本外的所有文本都将对齐。最后一行自然对齐。

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

我曾考虑过使用CTLine分别绘制每条线,并在这些线上指定一些东西来证明所有这些线的合理性,但我也不确定如何进行。

感谢

多亏了omz的评论,我偶然发现了CTLineCreateJustifiedLine,它正是我想要的。如果有人有一个使用Cocoa Control(NSTextView)的解决方案,我仍然很感兴趣,但如果有什么问题,我会感到惊讶。

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

相关内容

最新更新