【问题标题】:Word wrap for NSMutableAttributedStringNSMutableAttributedString 的自动换行
【发布时间】:2012-08-18 08:06:52
【问题描述】:

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

【问题讨论】:

  • 嘿 kBpro 是我的回答对你有帮助。如果是,请接受。

标签: objective-c ios xcode ios5 nsstring


【解决方案1】:

无论使用attributedText 还是普通文本,以下操作也有效。确保在将AttributedText 和字体设置为标签之后添加以下行

label.lineBreakMode = .byTruncatingTail

【讨论】:

    【解决方案2】:

    更新属性文本字段后设置以下属性:

    titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • OP 要求自动换行,但投票的回复被截断。这不应该是NSLineBreakByWordWrapping吗?
      猜你喜欢
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多