bugfix> ios > 投稿

プログラミングは初めてですが、 iosMath の使用方法に興味がありますiOS向け。すでにココアポッドをインストールでき、 iosMath をインポートしました映し出すために。質問:数学の方程式を視覚化する方法は? MTMathUILabel を使用する必要があることを理解していますそのため、どのようにプログラムに追加するのかはわかりません。 UIView のサブクラスを作成する方法はありますかまたは何か、それを行うことができるように?

ここに私のコードのサンプル:

import UIKit
import Foundation
import CoreGraphics
import QuartzCore
import CoreText
import iosMath
class ViewController: UIViewController {
    @IBOutlet weak var label: MTMathUILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let label: MTMathUILabel = MTMathUILabel()
        label.latex = "x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}"
        label.sizeToFit()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

ラベルを UIView() に接続しようとしましたおよび UILabel() 私のストーリーボードでは、しかしそれは明らかにそれがどのように機能するかではありません。

助けてくれてありがとう。

回答 1 件
  • 投稿されたコードのいくつかの問題

    IBOutlet を設定しています  その後、別の MTMathUILabel をインスタンス化します  同じ名前で

    本当に label.sizeToFit() を呼び出す必要はありません

    簡単な解決策は、 IBOutlet を削除することです 、次のようにします

    class ViewController: UIViewController {
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            let label: MTMathUILabel = MTMathUILabel()
            label.latex = "x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}"
            //ADD THIS LABE TO THE VIEW HEIRARCHY
            view.addSubview(label)
        }
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
    }
    
    

    より良い解決策は次のとおりです。

    UIView を作成する  ストーリーボード内( MTMathUILabel のため  実際は UIView です )

    このビューのクラスを MTMathUILabel に設定します

    IBOutlet を接続します  このビューのために

    次に、次のコードを使用します

    class ViewController: UIViewController {
        @IBOutlet weak var label: MTMathUILabel!
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            //NO NEED TO INSTANTIATE A NEW INSTANCE HERE
            label.latex = "x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}"
            //NO NEED TO CALL sizeToFit()
        }
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
    }
    
    

あなたの答え