iOS - 结合 NSLineBreakByWordWrapping 和 NSLineBreakByTruncatingTail

标签 ios objective-c ios7

我需要什么

我需要将一些文本写入 PDF。文本本身可以是任意长度,但我只能显示 2 行(通过自动换行),如果空间不够,应该截断第二行的尾部。

我尝试过的

NSMutableParagraphStyle *text = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
text.lineBreakMode = NSLineBreakByTruncatingTail;

这样,文本只出现在第一行,并在行尾截断。

NSMutableParagraphStyle *text = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
text.lineBreakMode = NSLineBreakByWordWrapping;

这样,文本换行到第二行,但如果有足够多的行的文本,则第二行末尾不会被截断。

我需要一些方法来结合这两种行为。

我研究了什么

我发现了一些关于自动换行的问题,但没有这样的。 我得到的最近的是这个:

NSLineBreakByWordWrapping on First Line but NSLineBreakByTruncatingTail For Second Line?

但那里的问题不同。在那个问题中,提问者想要这种行为,但在标签中,他用我在项目的其他部分也使用过的一些 Storyboard配置解决了这个问题。但是这个问题是关于 PDF 中的这种行为,使用 NSStringDrawingContext drawInRect 方法。

我使用的是 iOS 7(实际上只是更新到 7.1,但两者的情况是一样的)。

提前致谢。

编辑 - 另外,我在询问之前查看了此链接,但没有任何帮助:

https://developer.apple.com/library/ios/documentation/cocoa/reference/ApplicationKit/Classes/NSParagraphStyle_Class/Reference/Reference.html#//apple_ref/doc/c_ref/NSLineBreakByWordWrapping

最佳答案

引用:

@interface NSAttributedString (NSExtendedStringDrawing)
- (void)drawWithRect:(CGRect)rect options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(6_0);
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(6_0);
@end

传递“NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine”选项,请注意此方法仅适用于 NSAttributedString。

关于iOS - 结合 NSLineBreakByWordWrapping 和 NSLineBreakByTruncatingTail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22396347/

相关文章:

ios - 为什么swift 3中的base64图像呈现为白色?

适用于 iPad 和 iPhone 的 iOS 图像大小

objective-c - 如何更改 leftBarbuttonItem 标题?

ios - Xcode 6 - 我无法将任何东西从我的 IB 连接到 ViewController.swift

ios - 是否可以将颜色分配给目标坐标 x 到 y,而无需上传 UIimage

iphone - 委托(delegate)和多种方法

objective-c - Coredata 和 NSOrderedSet - 如何定义集合的顺序?

iphone - 从 MDM 服务器验证配置字典

ios - 如何使用 Dropbox 下载超过三分钟?

ios - 在 UITableViewCell 中滚动 UITextView