将utf-8文本转换为UILabel

问题描述 投票:1回答:1

我正在尝试从存储在服务器中的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

谢谢您的帮助!

ios swift utf-8 uilabel
1个回答
1
投票

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

当您在字符串中使用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

© www.soinside.com 2019 - 2024. All rights reserved.