我有NSMutableAttributedString,字符串很长。我想在UIlabel上显示它时进行自动换行。如果它是NSString,我会继续做这样的事情, Dynamic UILabel truncating the text 但我怎么能用NSAttributedString呢? 一旦完成,我需要根据标签大小调整视图大小。
答案 0 :(得分:6)
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 :(得分:3)
无论使用attributedText
还是普通文本,以下内容也有效。将AttributedText
和字体设置为标签后,请务必添加以下行。
label.lineBreakMode = .byTruncatingTail
答案 2 :(得分:0)
在更新attributedText字段后设置以下属性:
titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;