Swift 3:iosMath标签删除所有空格

时间:2017-03-25 13:37:13

标签: replace swift3 escaping space

我正在尝试显示有时可能包含数学表达式的文本,因此我正在使用iosMath中的MTMathUILabel。我动态生成标签,并在从数据库中提取字符串时将它们添加到堆栈中。问题是所有不是数学的文本都没有空格。即: 在db:解决以下等式:(数学在这里) 在标签中:Solvethefollowingequation :(数学在这里)

这是我到目前为止所尝试的内容:

for question in all_questions {
    let finalString = question.question?.replacingOccurrences(of: " ", with: "\\space", options: .literal, range: nil)

    let label = MTMathUILabel()
    label.textColor = UIColor.black
    label.latex = finalString
    stack.addArrangedSubview(label)
}

但问题在于它确实放置了两个。并且xcode不允许我只写一个\因为它没有被转义。但是,如果我只是写

print("\\space")

然后它只打印一个。

我如何解决这个问题,所以我只添加一个\?如果做不到这一点,我怎样才能达到我的目的?那里有更好的图书馆吗?

1 个答案:

答案 0 :(得分:0)

在快速浏览一下MTMathUILabel的doc和LaTeX约定之后,我相信你应该用波形符号替换你的空格"〜"。这将使它们成为不间断的空间并避免反斜杠问题(这可能是由于MTMathUILabel无法理解的空间)。

如果公式本身具有合法的空格,系统地替换所有空格可能会产生不良结果。

例如,二次方程表示为:

x = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2a}

您将最终替换花括号内的空格,这可能是您想要的也可能不是:

X〜=〜\压裂{-b〜\点〜\ SQRT {B ^ 2-4ac}} {2A}