2017-03-25 51 views
0

我試圖顯示可能有時包含數學表達式的文本,所以我從iosMath使用MTMathUILabel。我動態生成標籤並將它們添加到堆棧,因爲我從數據庫中拖出字符串。問題是所有不是數學的文本都顯示爲空格。即: 在DB:解決以下公式:(數學這裏) 在標籤:Solvethefollowingequation:(數學這裏)Swift 3:iosMath標籤刪除所有空格

這裏是我到目前爲止已經試過:

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") 

然後將打印只有一個。

我該如何解決這個問題,所以我只添加一個\?如果不能完成,我該如何實現我想要的?那裏有更好的圖書館嗎?

+0

是替換空格後字符串中的雙反斜槓?或者在finalString變量中(你沒有說明它是如何變成的)?或在顯示的標籤?如果您的問題字符串在LaTeX中格式正確,而不僅僅是純文本,則不需要轉義空格。請在發生問題的位置提供更精確的信息。 –

+0

我的不好,字符串和finalString應該是相同的變量。不知道你在問什麼。該字符串格式正確,我從json對象中獲取它,然後嘗試將其顯示在標籤中,但文本顯示時沒有任何空格,即使當我執行簡單打印時,它的空格也是@AlainT。 – Filipe

回答

0

在簡要介紹了MTMathUILabel的doc和LaTeX慣例之後,我相信你應該用代字符「〜」代替空格。這將使它們成爲不間斷的空間並避免反斜槓問題(這可能是由於MTMathUILabel不能理解的空間)。

如果公式本身具有合法空間,系統替換所有空間可能會產生不良結果。

例如,二次方程將被表示爲:

X = \壓裂{-b \時\ SQRT {B^2-4ac}} {2A}

你最終將取代大括號內的空間,這可能是也可能不是你想要什麼:

X〜=〜\壓裂{-b〜\點〜\開方{b^2-4ac}} {} 2A

+0

我會試一試,讓它知道它是否有效 – Filipe

+0

不幸的是,這也不起作用:/。 MTMathUILabel中的常規文本仍然顯示出來,沒有任何空格。 – Filipe

+0

@菲利普你有沒有得到任何解決方案呢? – Nitesh