将utf-8文本转换为UILabel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将utf-8文本转换为UILabel相关的知识,希望对你有一定的参考价值。

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

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

1)可以大胆

2)其字体大小可以从UILabel的默认值15改为18

例如:

< b>Topic< /b>(在实践中没有<>内的空间,只是试图避免这里的格式化问题..)。就像,如果我想在句子后打开一个新行,我可以做以下事情:

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

它将在UILabel中显示如下

输出:

This is the first sentence

This is the second sentence

谢谢您的帮助!

答案

你正在做的方式被称为属性字符串,或者你可以说格式化的字符串。

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

  1. 将HTML转换为Atrributed String。
  2. 将属性字符串分配给label

  1. 将Simple字符串转换为属性字符串。 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()

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

输出:

enter image description here

以上是关于将utf-8文本转换为UILabel的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CGFloat 设置为 UILabel 的文本属性

如何将 NSString 对象中的字符转换为 UILabel 对象?

将 UILabel 文本设置为粗体 [重复]

将 UILabel 高度调整为文本

在代码片段中包含类型转换

将文本片段扩展为更长的文本块