在開發的工程中,有須要顯示數學公式的需求,例以下面的前端
實現上面的顯示方式,能夠使用三種方式:ios
將數學公式在服務器端生成圖片,前端使用圖片來展現數學公式。git
使用這種方式前端難以排版,難以控制圖片的縮放比例,靈活性低。github
如今已經有一個很是成熟的排版系統 LaTeX,它支持使用文原本表達複雜的數學公式、表格等。若是單純的顯示數學公式的話,能夠使用 LaTeX 的子集 KaTeX, 它是一個支持 HTML 的輕量級的數學公式引擎。服務器
咱們能夠在須要顯示數學公式時建立一個 WebView,引入 KaTeX 來渲染數學公式。框架
使用這種方式存在幾種問題:3d
- WebView 加載數學公式的速度很是慢。
- 若是須要在 TableView 的 Cell 中加載數學公式,則可能出現一個頁面中須要多個 WebView 的狀況,會進一步見面頁面刷新的速度。其次 TableView 不能自動推斷出 WebView 的高度,從而難以控制 Cell 的高度。
iosMath 是一個專門用於顯示數學公式的框架,可是它不支持將其餘文字和數學公式一塊兒顯示。因此咱們只能從一段文字當中提取表達數學公式的部分,將其丟給 iosMath 顯示,其餘的內容還須要其餘控件來展現。cdn
因此咱們還須要使用 YYText ,將 iosMath 框架中的用於顯示數學公式的 MTMathUILabel 做爲一段 AttachmentString,使其和其餘文字進行拼接。blog
另外還須要考慮在數學公式過長,一個頁面顯示不全時,須要左右滾動方便用戶查看數學公式。因此用於展現信息的 YYLabel 還須要放在一個 UIScrollView 中。圖片
具體的實現方式能夠查看 github。
項目截圖1 | 項目截圖2 |
---|---|
![]() |
![]() |