NSMutableAttributedString的换行设置

11

我有一个NSMutableAttributedString,字符串非常长。我想在将其显示在UILabel上时进行自动换行。如果是NSString,我会像这样做: Dynamic UILabel truncating the text 但是如何处理NSAttributedString呢? 完成后,我需要根据标签大小调整视图的大小。


嘿,kBpro,我的回答对你有帮助吗?如果有,请接受它。 - python
3个回答

9

在iOS 6中,lineBreakMode属性并未被废弃。它仅仅是更改了常量的名称。旧常量已经被废弃,但仍然可用。即使您部署到旧版iOS,也可以使用新常量,因为常量只是枚举值。旧名称和新名称具有相同的值。所以,只需设置yourlabelname.lineBreakMode = NSLineBreakByTruncatingTail。

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineBreakMode:NSLineBreakByTruncatingTail];
[attributedStr addAttribute:NSParagraphStyleAttributeName
                     value:paragraphStyle
                     range:NSMakeRange(0,[attributedStr length])];

1
OP要求进行单词换行,但是被投票选中的回复却截断了。这不应该使用NSLineBreakByWordWrapping吗? - strangetimes

5

无论使用attributedText还是普通文本,以下内容都适用。在将AttributedText和字体设置到标签后,请确保添加下面这行代码

label.lineBreakMode = .byTruncatingTail

0
在更新attributedText字段后,设置以下属性:
titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;

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