我目前正在使用swift 3在ios上编写我的第一个应用程序。我有一个包含不同信息列表的plist,每个都是一个长段,其中包含各个部分。对于每个部分,我想加粗标题的文本,或者至少可以选择以某种方式格式化它而不是仅显示所有文本。我目前有一个简单的表格视图,一旦点击,就会在文本视图中显示文本。我无法弄清楚如何将段落读入字符串,并比较字符串的部分和粗体的特定文本。
例如,如果我有一个从plist读取的字符串并说:
“我的名字是@Bob,我喜欢@dance。”
我怎么能在没有硬编码的情况下将“@Bob”更改为“ Bob ”并将“@dance”更改为“跳舞”?
@IBOutlet var paragraphTextView: UITextView!
.
.
.
if let text = paragraph["Text"] {
paragraphTextView.text = text
}
答案 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