如何在 SWIFT 项目中使用 iosMath?响应。如何将 MTMathUILabel() 添加到项目中?

How to use iosMath in SWIFT project? Resp. how to add MTMathUILabel() to project?

我是编程新手,但我对如何将 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. 您正在设置一个 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. 将此视图的 class 设置为 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.
    }


}