【问题标题】:NSAttributedString with UILabel (ios 6): Using line height attribute and attributes from IBNSAttributedString with UILabel (ios 6): 使用行高属性和来自 IB 的属性
【发布时间】:2012-12-08 03:19:05
【问题描述】:

我有一个多行 UILabel,它的动态文本是我希望格式化的。我需要做的唯一格式化是增加行高,以便一个标签中两行的高度差异更大。

问题 1:如何通过 NSAttributedString 进行操作?我尝试过,但格式非常“非 UIKit”,因此令人困惑,文档非常有限。

问题 2:我可以看到属性文本可以通过 Interface Builder 添加,但这当然是针对静态文本的。有什么方法可以让我在 IB 中设置属性,然后通过代码提供文本,因为我希望对所有文本而不是部分文本进行格式化?

【问题讨论】:

    标签: iphone ios cocoa-touch ios6 nsattributedstring


    【解决方案1】:

    在界面生成器中,您可以设置自定义属性/属性。您可以在 UILabel 上添加一个添加属性 CSSStyle 的类别。然后在 setCSSStyle 中,您将获取当前在文本上的 NSString,将其更改为 NSAttributedString 并通过 setAttributedText 进行设置。

    要转换你放入这个属性的 CSS 样式,你可以使用像我的 DTCoreText 这样的框架,或者如果这对你来说很大,那么你可以简单地使用一个快速&肮脏的 CSS 解析器(我在 DTCoreText 中基于 NSScanner 构建了一个)并执行将您需要的属性转换为 NSAttributedString 属性。

    想一想,您可能希望在这样的属性上设置一个 HTML 字符串,因为这样您就可以以不同的方式格式化不同的单词。 DTCoreText 有一种将 HTML 转换为 NSAttributedString 的方法,然后您将再次通过标准设置器进行设置。

    【讨论】:

      猜你喜欢
      • 2013-01-25
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      相关资源
      最近更新 更多