html - 如何通过使用 Swift iOS 将 WKWebView 中的文本包装成 HTML 来格式化文本?

标签 html css swift swift3 wkwebview

我正在将文本加载到 WKWebView 中。我的目标是:

  1. 设置字体大小为固定值
  2. 在 WKWebView 中垂直对齐文本
  3. 在 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/

相关文章:

html - 更改相对 div 中绝对按钮的顺序

javascript - 如何更改页面和维护导航栏

javascript - 是否可以使用 Javascript 从另一个网页更改一个网页?

快速插入行并带有动画效果

ios - 容器 View 操作

ios - 如果对象无效,如何检查 Swift?

html - 一个网页可以有多个 rel ="alternate"标签吗?

html - 区域 map 不起作用

html - 我的 HTML 按钮不工作

html - 什么 CSS 规则导致我的绝对定位元素被隐藏