iOS-合并NSLineBreakByWordWrapping和NSLineBreakByTruncatingTail[英] iOS - Combine NSLineBreakByWordWrapping and NSLineBreakByTruncatingTail

本文是小编为大家收集整理的关于iOS-合并NSLineBreakByWordWrapping和NSLineBreakByTruncatingTail的处理方法,想解了iOS-合并NSLineBreakByWordWrapping和NSLineBreakByTruncatingTail的问题怎么解决?iOS-合并NSLineBreakByWordWrapping和NSLineBreakByTruncatingTail问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我需要什么

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

我的尝试

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

这样,文本只在第一行,并在行尾截断.

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

这样,文本会换行到第二行,但如果有足够的文本可以容纳更多行,则不会在第二行的末尾截断.

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

我研究过的内容

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

NSLineBreakByWordWrapping 在第一行但 NSLineBreakByTruncatingTail 用于第二行?

但问题不同.在那个问题中,提问者想要这种行为,但在标签中,他用我在项目的其他部分中也使用过的一些情节提要配置解决了这个问题.但是这个问题是关于 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.

本文地址:https://www.itbaoku.cn/post/924434.html