我正在开发一个应用程序,我需要所有的文本行都对齐。该应用程序将在图像顶部显示 2 行文本,为图片营造出类似广告的感觉。问题是这两行文本都需要对齐,但第二行文本永远不会对齐。或者,如果我分别画两条线,那么两条线都不合理。
如果您在 CoreText 中指定 kCTJustifiedTextAlignment
或在 NSTextField/View
上指定 NSJustifiedTextAlignment
,除了最后一行文本之外的所有文本都是对齐的。最后一行自然对齐。
有没有办法强制文本字段或 TextView 的最后一行对齐,从而填充 View 的宽度?
我考虑过使用 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);
关于iOS/OS X - 最后一行文本的合理对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17545585/