将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实体将根据其标记进行反映时,您必须执行以下操作:
- 将HTML转换为Atrributed String。
- 将属性字符串分配给
label
。
码
- 将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() } } }
- 将其指定为属性文本。
self.lblAtt.attributedText = STRHTML2.convertHtml()
例
测试字符串:"hello, <b>john</b>"
输出:
以上是关于将utf-8文本转换为UILabel的主要内容,如果未能解决你的问题,请参考以下文章