NSMutableAttributedString的自动换行

时间:2012-08-22 20:31:08

标签: objective-c ios xcode ios5 nsstring

我有NSMutableAttributedString,字符串很长。我想在UIlabel上显示它时进行自动换行。如果它是NSString,我会继续做这样的事情, Dynamic UILabel truncating the text      但我怎么能用NSAttributedString呢? 一旦完成,我需要根据标签大小调整视图大小。

3 个答案:

答案 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;