我正在将文本加载到 WKWebView 中。我的目标是:
- 设置字体大小为固定值
- 在 WKWebView 中垂直对齐文本
- 在 WKWebView 中水平对齐文本
我无法在 WKWebView 上找到可以做到这一点的函数。所以我试图将字符串包装成一些 HTML 代码。
这是我的代码:
func loadQuestions() {
questionView.questionLabel.text = questionArray[questionIndex].questionText
let questionText: String = questionArray[questionIndex].questionText!
let answerText: String = questionArray[questionIndex].answerText!
let htmlWrap = "<p>\(questionText)</p><p>\(answerText)</p>"
answerView.webView.loadHTMLString(htmlWrap, baseURL: nil)
}
这行得通,但是当我尝试添加一些我使用转换器网站获得的高级格式时(因为我不知道 html),我得到了所有使我的字符串无效的引号 (")。
let htmlWrap = "<p style="text-align: center;"><span style="font-size: 36pt;">\(questionText)</span></p><p style="text-align: center;"><span style="font-size: 36pt;">\(answerText)</span></p>"
上面的不会编译。
似乎我可以在每个引号 (") 之前的 html 字符串中使用转义字符 (\),如果它是一条简单的行,这似乎有效。但不适用于复杂的 html。那么我该怎么做这个?
谢谢!
最佳答案
两种方式:
如您所知,使用\是解决此问题的好方法,因为对于 Swift 而言,字符串以 "开头并以 "结尾。在 "之前添加\并将其转换为字符串的一部分,而不是指定字符串结尾的控制字符。因此,您可以复制转换器的输出并将其粘贴到文本编辑器中,找到并替换 "为\"。如果您想在 HTML 字符串中使用 ",则别无他法(如果排除了使用 API 直接从转换器获取 html 字符串以存储到变量中的选项)。
另一种方法是在 HTML 字符串中使用 ' 而不是 "。因此,您必须再次将转换器的输出复制到文本编辑器,然后找到并用 ' 替换 "。
关于html - 如何通过使用 Swift iOS 将 WKWebView 中的文本包装成 HTML 来格式化文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41656393/