ProgressHUD--swift写的轻量级好用的toast框

作者: _Erica | 来源:发表于2016-12-09 09:51 被阅读2025次

在简书消失了一段时间,很久没写过新文章了,最近在用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: "哈哈哈哈") 
屏幕快照 2016-12-09 上午9.37.30.png
    //loading
     self.view.hud.show(loading: "加载当中") 
屏幕快照 2016-12-09 上午9.39.52.png
     //progress
   self.view.hud.show(progress: progress, status: "正在上传")
屏幕快照 2016-12-09 上午9.40.51.png
         // 设置全局样式

       // 设置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文件和一个资源包,直接上项目地址了,希望能帮助到有需要的开发者,或者用来参考开发更牛逼的框架,若您觉得项目哪里有不足或者意见希望也可以向我提出来改进.

github: https://github.com/ac1217/ProgressHUD

相关文章

网友评论

    本文标题:ProgressHUD--swift写的轻量级好用的toast框

    本文链接:https://www.haomeiwen.com/subject/ropsmttx.html