iOS drawInRect:属性使用多行执行文本截断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS drawInRect:属性使用多行执行文本截断相关的知识,希望对你有一定的参考价值。

如何在带有尾部截断的矩形中绘制长文本字符串?我尝试使用drawInRect:withAttributes:使用NSLineBreakByTruncatingTail段落样式,但它总是在一行上呈现文本。它只使用NSLineBreakByWordWrapping和NSLineBreakByCharWrapping中断模式呈现多行文本,并且在使用此选项时不会发生截断。我是否需要在段落样式上设置任何属性才能实现此目的?或者这是不再支持的,在这种情况下除了继续使用弃用的方法之外我别无其他选择。不推荐使用的方法drawInRect:withFont:lineBreakMode:alignment:工作正常。

答案

有可能的。

你是对的 - 你不能使用NSLineBreakByTruncatingTail段落样式,因为它只显示单行的截断文本。

你应该使用drawInRect:withFont:lineBreakMode:alignment:而不是弃用drawWithRect:options:attributes:context:

[string drawWithRect:CGRectMake(x, y, width, height)
             options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine
          attributes:@{NSFontAttributeName:<font>, NSForegroundColorAttributeName:<color>}
             context:nil];

以上是关于iOS drawInRect:属性使用多行执行文本截断的主要内容,如果未能解决你的问题,请参考以下文章

drawAtPoint: 和 drawInRect: 模糊文本

drawInRect: withAttributes 文本垂直居中或放置一些填充

NSString drawInRect : 文本没有被剪裁到给定的高度

斯威夫特 iOS。多行 UILabel 背景颜色跟随文本

UITableViewCell drawInRect iOS7

如何在 iOS 7 中使用 drawInRect:withAttributes: 而不是 drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:ba