使用 swift 3 从 plist 中读取长文本到特定格式
Read long paragraph of text from plist into a specific format with swift 3
我目前正在使用 swift 在 ios 上编写我的第一个应用程序 3. 我有一个 plist,其中包含不同信息的列表,每个信息都是一个长段落,其中贯穿了各个部分。对于每个部分,我想将标题的文本加粗,或者至少可以选择以某种方式设置格式,而不是只显示所有文本。我目前有一个简单的 table 视图,点击后会在文本视图中显示文本。我不知道如何将段落读入字符串,以及比较字符串的各个部分和特定文本的粗体。
例如,如果我有一个从 plist 中读取的字符串并表示:
"My name is @Bob and I like to @dance."
如何在不硬编码的情况下将“@Bob”更改为“Bob”并将“@dance”更改为“dance” ?
@IBOutlet var paragraphTextView: UITextView!
.
.
.
if let text = paragraph["Text"] {
paragraphTextView.text = text
}
最简单的解决方案是在 plist 文件的文本中使用一些 HTML 标记。
而不是纯文本:
My name is @Bob and I like to @dance.
使用:
My name is <b>Bob</b> and I like to <b>dance</b>.
这为您提供了更大的灵活性。您只需根据需要使用适当的 <b></b>
、<u></u>
和 <i></i>
标记即可添加粗体、下划线和斜体。它还允许您标记比单个单词更通用的范围。
文本具有正确的标记后,您可以从标记的字符串创建一个 NSAttributedString
,然后将其设置为文本视图s
attributedTextproperty instead of using the
text` 属性.
有关如何从 HTML 文本创建 NSAttributedString
的很好示例,请参阅
我目前正在使用 swift 在 ios 上编写我的第一个应用程序 3. 我有一个 plist,其中包含不同信息的列表,每个信息都是一个长段落,其中贯穿了各个部分。对于每个部分,我想将标题的文本加粗,或者至少可以选择以某种方式设置格式,而不是只显示所有文本。我目前有一个简单的 table 视图,点击后会在文本视图中显示文本。我不知道如何将段落读入字符串,以及比较字符串的各个部分和特定文本的粗体。
例如,如果我有一个从 plist 中读取的字符串并表示:
"My name is @Bob and I like to @dance."
如何在不硬编码的情况下将“@Bob”更改为“Bob”并将“@dance”更改为“dance” ?
@IBOutlet var paragraphTextView: UITextView!
.
.
.
if let text = paragraph["Text"] {
paragraphTextView.text = text
}
最简单的解决方案是在 plist 文件的文本中使用一些 HTML 标记。
而不是纯文本:
My name is @Bob and I like to @dance.
使用:
My name is <b>Bob</b> and I like to <b>dance</b>.
这为您提供了更大的灵活性。您只需根据需要使用适当的 <b></b>
、<u></u>
和 <i></i>
标记即可添加粗体、下划线和斜体。它还允许您标记比单个单词更通用的范围。
文本具有正确的标记后,您可以从标记的字符串创建一个 NSAttributedString
,然后将其设置为文本视图s
attributedTextproperty instead of using the
text` 属性.
有关如何从 HTML 文本创建 NSAttributedString
的很好示例,请参阅