我有一个在UITableViewCell中绘制多色文本的视图。要绘制多色文本我正在使用NSAttributedString但是,我想这样做,如果文本太长而无法放入视图中,最后一条可见行将被截断以在其末尾显示省略号。
显然,只绘制一行就很容易,只需设置即可 kCTLineBreakByTruncatingTail用于段落样式的换行模式。问题是我希望我的文本换行以填充矩形,然后只有最后一行用省略号截断 - 设置换行模式将整个文本限制为一行。
有没有人对我如何做到这一点有任何想法?
非常感谢任何建议, JC。
答案 0 :(得分:0)
使用UITableViewCell的矩形从CTFrameSetter创建CTFrame。然后,您可以获取CTFrame的所有CTLine并确定它们何时会被切断。要交换省略号,您可以使用单独的CTFrame保持绘制,并将其绘制在最后一行的溢出文本上。
答案 1 :(得分:0)
您可以在此处找到工作代码:https://stackoverflow.com/a/14612598/473067
这与希思建议的方法类似。但随后所有这些都包裹在一个闪亮的包装中。
答案 2 :(得分:0)
好吧,要在UILabel中激活文本截断,您应该在设置attributedText后将lineBreakMode参数重新设置为NSLineBreakByTruncatingTail。
textLabel.attributedText = attributedText;
textLabel.lineBreakMode = NSLineBreakByTruncatingTail;