在简书消失了一段时间,很久没写过新文章了,最近在用swift做项目,发现toast的swift好用框架不多,像SV和MB那些闻名的框架又是OC写的,总感觉不太爽,于是乎利用闲余时间撸了一个,用起来更像SV和MB两者的结合版,可以说集成两大框架的优点,而且用法同样简单方便快捷.
先说一下SVProgressHUD,它是一个全局的view,就是说整个应用程序只存在一个,这做法虽然省内存,但是也满足不了某些需求,例如我需要在某个界面不用的view显示两个loading效果,这时候就尴尬了.
再说MBProgressHUD,虽说他可以show在不同的view上,但是它用起来比较麻烦,可能要您自己写一些扩展来简化其使用.
于是想了下,如果把两者优点结合用起来岂不是更爽?那就来看下ProgressHUD使用起来是怎么个爽法.
1.为每一个view都扩展了一个计算属性"hud",如果想将hud在某个view上展示,直接调用对应的view.hud即可..
//success
self.view.hud.show(success: "哈哈哈哈")
//loading
self.view.hud.show(loading: "加载当中")
//progress
self.view.hud.show(progress: progress, status: "正在上传")
// 设置全局样式
// 设置gif帧动画为加载动画
ProgressHUD.defaultLoadingImages = [UIImage(named: "dyla_img_loading_1")!, UIImage(named: "dyla_img_loading_2")!]
ProgressHUD.defaultAnimationDuration = 1
针对单个自定义
let hud = view.hud
hud.delay = 5
hud.successImage = UIImage(named: "back-chevron")
hud.show(success: "保存成功")
这有个注意点,应该先定义一个常量引用着
let hud = view.hud
最好不要直接使用view.hud,因为每调用一下内部都会重置一下默认数据,之前设置的数据就会失效
view.hud.delay = 5
view.hud.successImage = UIImage(named: "back-chevron")
view.hud.show(success: "保存成功")
针对单个自定义这样设置会有影响
代码很简单,就一个.swift文件和一个资源包,直接上项目地址了,希望能帮助到有需要的开发者,或者用来参考开发更牛逼的框架,若您觉得项目哪里有不足或者意见希望也可以向我提出来改进.