使用swift 3将plist中的长段文本读入特定格式

时间:2017-05-07 16:45:54

标签: ios swift3 uitextview plist nsattributedstring

我目前正在使用swift 3在ios上编写我的第一个应用程序。我有一个包含不同信息列表的plist,每个都是一个长段,其中包含各个部分。对于每个部分,我想加粗标题的文本,或者至少可以选择以某种方式格式化它而不是仅显示所有文本。我目前有一个简单的表格视图,一旦点击,就会在文本视图中显示文本。我无法弄清楚如何将段落读入字符串,并比较字符串的部分和粗体的特定文本。

例如,如果我有一个从plist读取的字符串并说:

“我的名字是@Bob,我喜欢@dance。”

我怎么能在没有硬编码的情况下将“@​​Bob”更改为“ Bob ”并将“@dance”更改为“跳舞”?

@IBOutlet var paragraphTextView: UITextView!
.
.
.

if let text = paragraph["Text"] {
        paragraphTextView.text = text
}

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是在plist文件的文本中使用一些HTML标记。

而不是纯文本:

  

我的名字是@Bob,我喜欢@dance。

使用:

  

我的名字是< b> Bob< / b>我喜欢< b>跳舞< / b>。

这为您提供了更大的灵活性。您可以根据需要使用相应的<b></b><u></u><i></i>标记添加粗体,下划线和斜体。它还允许您标记比单个单词更一般的范围。

文本具有正确的标记后,您可以从标记的字符串中创建NSAttributedString,然后将其设置为文本视图s attributedText property instead of using the text`属性。

有关如何从HTML文本创建NSAttributedString的一个很好的示例,请参阅HTML Format in UITextView