iOS swift 顯示數學公式

在開發的工程中,有須要顯示數學公式的需求,例以下面的前端

數學公式1

數學公式2

實現上面的顯示方式,能夠使用三種方式:ios

使用圖片

將數學公式在服務器端生成圖片,前端使用圖片來展現數學公式。git

使用這種方式前端難以排版,難以控制圖片的縮放比例,靈活性低。github

WebView 加載數學公式引擎 —— KaTeX

如今已經有一個很是成熟的排版系統 LaTeX,它支持使用文原本表達複雜的數學公式、表格等。若是單純的顯示數學公式的話,能夠使用 LaTeX 的子集 KaTeX, 它是一個支持 HTML 的輕量級的數學公式引擎。服務器

咱們能夠在須要顯示數學公式時建立一個 WebView,引入 KaTeX 來渲染數學公式。框架

使用這種方式存在幾種問題:3d

  1. WebView 加載數學公式的速度很是慢。
  2. 若是須要在 TableView 的 Cell 中加載數學公式,則可能出現一個頁面中須要多個 WebView 的狀況,會進一步見面頁面刷新的速度。其次 TableView 不能自動推斷出 WebView 的高度,從而難以控制 Cell 的高度。

iosMath + YYText 的組合

iosMath 是一個專門用於顯示數學公式的框架,可是它不支持將其餘文字和數學公式一塊兒顯示。因此咱們只能從一段文字當中提取表達數學公式的部分,將其丟給 iosMath 顯示,其餘的內容還須要其餘控件來展現。cdn

因此咱們還須要使用 YYText ,將 iosMath 框架中的用於顯示數學公式的 MTMathUILabel 做爲一段 AttachmentString,使其和其餘文字進行拼接。blog

另外還須要考慮在數學公式過長,一個頁面顯示不全時,須要左右滾動方便用戶查看數學公式。因此用於展現信息的 YYLabel 還須要放在一個 UIScrollView 中。圖片

具體的實現方式能夠查看 github

項目截圖1 項目截圖2

參考

廖雪峯--使用 KaTeX 渲染數學公式

相關文章
相關標籤/搜索