将utf-8文本转换为UILabel

时间:2017-12-23 08:08:07

标签: ios swift utf-8 uilabel

我正在尝试从存储在服务器中的JSON文件下载 utf-8 格式的文本,然后将其用作UILabel中的文本。

现在,我不知道我应该在文本中包含哪些代码,以便有针对性的措辞

1)可以是粗体

2)其字体大小可以更改为,例如18,来自UILabel

中的默认值15

例如:

< b>Topic< /b>(在实践中没有空格&lt;&gt;,只是尽量避免格式化问题...)。 就像,如果我想在句子后打开一个新行,我可以执行以下操作:

这是第一句话\ r \ n这是第二句”,

它会在UILabel

中显示如下

输出:

This is the first sentence

This is the second sentence

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你做的方式是知道为Attributed字符串,或者你可以说是格式化的字符串。

当您在字符串中使用HTML实体并且您希望这些HTML实体将根据其标记进行反映时,您必须执行以下操作:

  1. 将HTML转换为Atrributed String。
  2. 将属性字符串分配给label
  3. <强>代码

    1. 将简单字符串转换为属性字符串。

       extension String{
       func convertHtml() -> NSAttributedString{
          guard let data = data(using: .utf8) else { return NSAttributedString() }
          do{
              return try NSAttributedString(data: data, options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue], documentAttributes: nil)
          }catch{
              return NSAttributedString()
          }
        }
      }
      
    2. 将其指定为属性文本。

      self.lblAtt.attributedText = STRHTML2.convertHtml()
      
    3. 示例

      测试字符串:"hello, <b>john</b>"

      输出:

      enter image description here