2017-03-25 11 views
0

時には数式を含むテキストを表示しようとしているので、iosMathからMTMathUILabelを使用しています。私はラベルを動的に生成し、データベースから文字列を引っ張ってスタックに追加します。問題は、数学ではないすべてのテキストがスペースなしで表示されることです。すなわち:DBに :Swift 3:すべての空白を削除するiosMathラベル

ここ

は、私がこれまでにしようとしているものです(ここでは数学):ラベルで(ここでは数学) :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) 
} 

しかし、問題はということですそれは文字通り2つを配置します。そしてxcodeはエスケープされていないので、私はただ1つだけ書くことはできません。しかし、私が書いただけの場合

print("\\space") 

それで1つしか印刷されません。

これを修正して1つだけ追加する方法はありますか?これができないなら、私は何をしたいのですか?そこには良いライブラリがありますか?

+0

のですが:中括弧内のスペースは、それがまたはあなたが望むものであってもなくてもよいです空白を置き換えた後の文字列の二重バックスラッシュ?またはfinalString変数(これはどのようになっているかを示していませんでした)にありますか?または表示されたラベルに表示されますか?あなたの質問文字列がLaTeXで正しく書式設定されていて、何らかのプレーンテキストではない場合は、スペースをエスケープする必要はありません。問題の発生場所をより正確に指定してください。 –

+0

私の悪い、stringとfinalStringは同じ変数であると考えられます。あなたが何を求めているのかは分かりません。文字列は正しくフォーマットされていますが、jsonオブジェクトから取得してラベルに表示しようとしますが、@AlainTという空白がある簡単な印刷を行ってもテキストはスペースなしで表示されます。 – Filipe

答えて

0

MTMathUILabelのドキュメントとLaTeXの規則を簡単に見てから、スペースをチルダ文字 "〜"で置き換える必要があると思います。これにより、スペースを非改行にしてバックスラッシュの問題を避けることができます(おそらく\ spaceはMTMathUILabelによって認識されないためです)。

すべてのスペースを体系的に置換すると、フォーミュラ自体に正当なスペースがあると、望ましくない結果になることがあります。あなたが交換してしまう

X = \ FRAC {-bの\午後の\ SQRT {B^2-4ac}} {2A}

たとえば、二次方程式は、として

を表すことになります

X〜=〜\ FRAC {-b〜午後〜\ sqrtの\ {B^2-4ac}} {2A}

+0

私はそれを試して、それが動作するかどうかを教えてくれます – Filipe

+0

残念ながら、これはうまくいきません:/。 MTMathUILabelの通常のテキストは、空白なしでまだ表示されています。 – Filipe

+0

@Filipeまだ解決策はありますか? – Nitesh

関連する問題