Как использовать iosMath в проекте SWIFT?СоответственноКак добавить MTMathUILabel () в проект? - PullRequest
0 голосов
/ 25 мая 2018

Я новичок в программировании, но мне интересно, как использовать iosMath для iOS.Я уже мог установить Cocoa Pod и импортировал 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 Ответ

0 голосов
/ 25 мая 2018

Несколько проблем в вашем опубликованном коде

  1. Вы устанавливаете IBOutlet, затем создаете экземпляр другого MTMathUILabel с тем же именем
  2. Вам не нужно звонить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.
    }


}

Лучшее решение заключается в следующем:

  1. Создайте UIView в раскадровке (потому что MTMathUILabel на самом деле UIView)
  2. Установите для этого представления класс MTMathUILabel
  3. Подключите 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.
    }


}
...