iOS提示框,為什麼你應該使用 MBProgressHUD?

發表於2015-09-21

這是一篇帶有一定筆者主觀感情色彩的比較文章。文章著重對比github上最流行的兩個iOS進度提示控制元件 MBProgressHUD 與 SVProgressHUD的各自優劣。來幫助初學者找到一個適合的iOS提示框解決方案。

無論如何,你總是需要一個提示框.

提示框,進度提示,載入中提示等等,無論怎樣,你總是需要提示框來指示某個狀態正在後臺努力進行中.一個合適的提示框,更多的是用來增強使用者體驗.把最多的時間,用來做更核心的事;把這些不是非常重要的事,你應該試著使用一個成熟穩定的第三方來解決.

MBProgressHUD 還是 SVProgressHUD ?

許多時候,選擇都是很重要的,但是總是要做出選擇.每個人考慮的因素和角度不同,結論或許也不同.但是,你要明白,你現在是要找一個合適的方案來解決自己的關於”提示框”的需求,而不是去無意義的討論與分析.我推薦你使用 MBProgressHUD. 如果你只是想找一個答案,看到這裡就夠了.下面會進行一些對比分析.有時候,羅列一些可選答案,總是讓人感覺很舒服的;但是我們最終都要做出選擇,表明自己的態度.就像你可以依然堅持自己的看法,我會依然深度使用 MBProgressHUD一樣.下面的分析不是要證明 MBProgressHUD 或 SVProgressHUD 誰好或者不好,更多的只是為了說明,我的選擇可能不是最佳的,但還是靠點譜的!

github 流行度: MBProgressHUD – SVProgressHUD = 2500

截止目前, MBProgressHUD 的關注度為 8556, SVProgressHUD 的關注度為 6003,差額在 2500左右.github上面的流行度是很能說明兩個第三方的相對優劣的,這就像各個書店上圖書的購買量和評論量總是和一本書的價值成正相關一樣!誠然, MBProgressHUD 和 SVProgressHUD 的關注度都是非常高的了,都已經屬於非常流行的 iOS 第三方了.但是,既然我要選一個深度使用,肯定是關注度更高的那個!在大多數時候,我相信”大家”的選擇,對自己是可有參考價值的!

介面易用性: MBProgressHUD == SVProgressHUD

以下是MBProgressHUD 和 SVProgressHUD 各自專案的github主頁上,各自的基本用法示例:

在大多數場景中,你幾乎只會用到顯示隱藏這兩個最基本的方法,所以說,儘管 SVProgressHUD 自稱更加易用,但是我還是認為這真的看不出什麼優勢.

介面豐富性: MBProgressHUD >> SVProgressHUD

MBProgressHUD 和 SVProgressHUD 都支援簡單的進度提示和文字提示.單從各自github主頁上來看, SVProgressHUD 似乎擁有更多的介面,但是事實並非如此.如果你下載過MBProgressHUD的示例就會發現,它能實現的功能要遠遠多於 文件示例給出的簡單的 顯示 與 隱藏.為了能讓大家更多的瞭解MBProgressHUD,列出部分方法與引數常量,具體資訊可參考官方示例:

介面靈活性和可擴充套件性: MBProgressHUD > SVProgressHUD

首先,二者都是開放原始碼的,如果有特殊需求,可以完全自主定製;所以這裡主要討論的是 MBProgressHUD 和 SVProgressHUD自身在不修改核心程式碼的前提下的介面靈活性和可擴充套件性.同樣的但從文件來看, SVProgressHUD 表現出更多的靈活性,參見: SVProgressHUD–比MBProgressHUD更好用的 iOS進度提示元件.但是事實並非如此! MBProgressHUD 入門文件相對很少提及其靈活性,但其提供的DEMO中較完整地展示了它的強大之處.個人認為,單單允許使用自定義檢視作為提供框的檢視這一點,就足以讓SVProgressHUD 的絕大部分特性黯然失色;這也是我最終決定選定 MBProgressHUD 並深入使用 MBProgressHUD的重要原因.初次之外, MBProgressHUD 還支援自定義部分進度條相關的屬性.具體細節如下:

結論

總而言之, 不管你開發什麼應用,你總是需要一個MBProgressHUD,而我真的推薦你使用 MBProgressHUD.官方文件對MBProgressHUD的具體功能提的過於精簡,希望能借助這篇文章,能讓大家一起更全面的認識 MBProgressHUD.

相關文章