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

标签 ios objective-c macos core-text

我正在开发一个应用程序,我需要所有的文本行都对齐。该应用程序将在图像顶部显示 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/

相关文章:

macos - 如何缓解 Safari 警告 "Do you want to allow this page to open XYZ"

ios - 弹出图片库无法在 iPad iOS Swift 中工作

ios - 从 1 个文本字段编辑 2 个标签

android - 在lua中旋转一个物理对象

iphone - 将 NSMutableArray 传递给函数

macos - 直接从我的 OSX 应用程序发送电子邮件

ios - WKWebView 没有加载 url

ios - 错误消息 : local or direct from server API?

ios - 从 google places api ios 访问结果以自动完成

Java JFrame 在 Mac OSX 上未刷新