iOS drawInRect:attributes方法在多行文本截断时的表现

4
如何在一个矩形中绘制一长串带有尾部截断的文本?我尝试使用带有NSLineBreakByTruncatingTail段落样式的drawInRect:withAttributes:方法,但它总是将文本渲染在单行上。只有使用NSLineBreakByWordWrapping和NSLineBreakByCharWrapping换行模式时,它才会呈现多行文本,并且在使用此选项时没有截断。 是否需要设置段落样式上的任何属性才能实现这一点?或者这是否已经不再支持,如果是这样,我看不到任何其他选择,只能继续使用已弃用的方法。已弃用的方法drawInRect:withFont:lineBreakMode:alignment:正常工作。
1个回答

5

这是可能的。

您说得对 - 您不能使用NSLineBreakByTruncatingTail段落样式,因为它只会显示单行截断文本。

您应该使用drawWithRect:options:attributes:context:代替已弃用的drawInRect:withFont:lineBreakMode:alignment:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接