这是一篇带有一定笔者主观感情色彩的比较文章。文章着重对比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主页上,各自的基本用法示例:
1 2 3 4 5 6 7 |
[MBProgressHUD showHUDAddedTo:self.view animated:YES]; dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ // Do something... dispatch_async(dispatch_get_main_queue(), ^{ [MBProgressHUD hideHUDForView:self.view animated:YES]; }); }); |
1 2 3 4 5 6 7 |
[SVProgressHUD show]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // time-consuming task dispatch_async(dispatch_get_main_queue(), ^{ [SVProgressHUD dismiss]; }); }); |
在大多数场景中,你几乎只会用到显示
与隐藏
这两个最基本的方法,所以说,尽管 SVProgressHUD 自称更加易用,但是我还是认为这真的看不出什么优势.
接口丰富性: MBProgressHUD >> SVProgressHUD
MBProgressHUD 和 SVProgressHUD 都支持简单的进度提示和文字提示.单从各自github主页上来看, SVProgressHUD 似乎拥有更多的接口,但是事实并非如此.如果你下载过MBProgressHUD的示例就会发现,它能实现的功能要远远多于 文档示例给出的简单的 显示
与 隐藏
.为了能让大家更多的了解MBProgressHUD,列出部分方法与参数常量,具体信息可参考官方示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
/** * 创建一个新的HUD,并把它添加并显示到提供的视图上.与之相对应的方法是 hideHUDForView:animated:. * * <a href="http://www.jobbole.com/members/smartsl">@note</a> 这个方法会设置HUD的属性`removeFromSuperViewOnHide`为YES.HUD会在隐藏时自动从父视图上移除. * * @param view 将HUD添加到此视图上. 示某个状态正在后台努力进行中.一个合适的提示框,更多的是用来增强用户体验.把最多的时间,用来做更核心的事;把这些不是非常重要的事,你应该试着使用一个成熟稳定的第三方来解决.
MBProgressHUD 还是 SVProgressHUD ?许多时候,选择都是很重要的,但是总是要做出选择.每个人考虑的因素和角度不同,结论或许也不同.但是,你要明白,你现在是要找一个合适的方案来解决自己的关于”提示框”的需求,而不是去无意义的讨论与分析.我推荐你使用 MBProgressHUD. 如果你只是想找一个答案,看到这里就够了.下面会进行一些对比分析.有时候,罗列一些可选答案,总是让人感觉很舒服的;但是我们最终都要做出选择,表明自己的态度.就像你可以依然坚持自己的看法,我会依然深度使用 MBProgressHUD一样.下面的分析不是要证明 MBProgressHUD 或 SVProgressHUD 谁好或者不好,更多的只是为了说明,我的选择可能不是最佳的,但还是靠点谱的! github 流行度: MBProgressHUD – SVProgressHUD = 2500截止目前, MBProgressHUD 的关注度为 8556, SVProgressHUD 的关注度为 6003,差额在 2500左右.github上面的流行度是很能说明两个第三方的相对优劣的,这就像各个书店上图书的购买量和评论量总是和一本书的价值成正相关一样!诚然, MBProgressHUD 和 SVProgressHUD 的关注度都是非常高的了,都已经属于非常流行的 iOS 第三方了.但是,既然我要选一个深度使用,肯定是关注度更高的那个!在大多数时候,我相信”大家”的选择,对自己是可有参考价值的! 接口易用性: MBProgressHUD == SVProgressHUD以下是MBProgressHUD 和 SVProgressHUD 各自项目的github主页上,各自的基本用法示例:
在大多数场景中,你几乎只会用到 接口丰富性: MBProgressHUD >> SVProgressHUDMBProgressHUD 和 SVProgressHUD 都支持简单的进度提示和文字提示.单从各自github主页上来看, SVProgressHUD 似乎拥有更多的接口,但是事实并非如此.如果你下载过MBProgressHUD的示例就会发现,它能实现的功能要远远多于 文档示例给出的简单的
|