0

我有一个在 UITableViewCell 内绘制多色文本的视图。要绘制多色文本,我正在使用 NSAttributedString 但是,我想这样做,如果文本太长而无法放入视图中,则最后一条可见行将被截断以在其末尾显示一个省略号。

显然,当只绘制单行时,这很容易做到,因为您可以将 kCTLineBreakByTruncatingTail 设置为段落样式的换行模式。问题是我希望我的文本换行以填充矩形,然后只用省略号截断最后一行 - 设置换行模式会将整个文本限制为一行。

有人对我将如何处理有任何想法吗?

非常感谢您的任何建议,JC。

4

3 回答 3

0

使用 UITableViewCell 的矩形从 CTFrameSetter 创建 CTFrame。然后,您可以获取您的 CTFrame 的所有 CTLines 并确定它们何时会被切断。要交换省略号,您可以使用单独的 CTFrame 将其绘制并绘制在最后一行溢出的文本上。

于 2011-02-02T06:30:35.787 回答
0

你可以在这里找到工作代码:https ://stackoverflow.com/a/14612598/473067

这与希思建议的方法类似。但随后全部包裹在一个闪亮的包裹中。

于 2013-08-21T21:13:59.600 回答
0

那么,要在 UILabel 中激活文本截断,您应该在设置属性文本后将 lineBreakMode 参数重新设置为 NSLineBreakByTruncatingTail。

 textLabel.attributedText = attributedText;
 textLabel.lineBreakMode = NSLineBreakByTruncatingTail;
于 2017-11-06T14:50:27.727 回答