Swift之多样的MBProgressHUD

之前给大家分享过系统的中间弹框,底部弹框UIAlertController,今天来补充一下MBProgressHUD的应用吧 YoY

首先我用Cocoapods导入了MBProgressHUD这个第三方库,关于Cocoapods的安装与使用就不给大家详细讲解啦,有一篇很好的文章分享给大家:CocoaPods的安装使用和常见问题http://www.jianshu.com/p/6e5c0f78200a
好啦好啦,跑远啦,嘿嘿,导入MBProgressHUD之后要记得创建了桥接文件哦,我们现在写的可是swift呀。创建文件以后千万要记得设置这里:

设置桥接文件.png

好啦,一切准备就绪,开始敲代码:

首先,我们在storyboard里面创建四个按钮:
首页.png
我们最常见的提示框
@IBAction func defaultMBProgress(sender: AnyObject) {
    
    let HUD = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
    HUD.delegate = self
    
    //常用设置
    //小矩形的背景色
    HUD.bezelView.color = UIColor.clearColor()
    //显示的文字
    HUD.label.text = "加载中1..."
    //细节文字
    HUD.detailsLabel.text = "请耐心等待..."
    //设置背景,加遮罩
    HUD.backgroundView.style = .Blur //或SolidColor
    HUD.hideAnimated(true, afterDelay: 2)

}
我们最常见的提示框.png
只有文字的提示框
@IBAction func textMBProgress(sender: UIButton) {
    
    //只显示文字
    let hud = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
    hud.mode = MBProgressHUDMode.Text
    hud.label.text = "啦啦啦..."
    hud.detailsLabel.text = "这是详细信息"
    hud.margin = 10
    hud.offset.y = 50
    hud.removeFromSuperViewOnHide = true
    hud.hideAnimated(true, afterDelay: 3)
}
只有文字的提示框.png
自定义的提示框
@IBAction func customMBProgress(sender: UIButton) {
    
    //自定义视图提示
    let hud1 = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
    hud1.mode = MBProgressHUDMode.CustomView
    hud1.customView = UIImageView(image: UIImage(named: "pic_dui@2x"))
    hud1.label.text = "自定义加载..."
    hud1.offset.y = -50
    hud1.hideAnimated(true, afterDelay: 4)
}
自定义的提示框.png
使用异步加载的提示框

前面的几种提示框都很好理解,在多数项目中,还会涉及到异步操作的等待提示,比如网络下载数据,那就要在提示的时候,后台下载数据,完成后再自动隐藏掉。

@IBAction func asyncShow(sender: UIButton) {
    let hud = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
    hud.label.text = "请稍等,数据加载中,预计10秒中"
    
    hud.showAnimated(true, whileExecutingBlock: {
        //异步任务,在后台运行的任务
        sleep(10)
    }) {
        //执行完成后的操作,移除
        hud.removeFromSuperview()
    }
}
这个方法:
hud.showAnimated(<#T##animated: Bool##Bool#>, whileExecutingBlock: <#T##dispatch_block_t##dispatch_block_t##() -> Void#>)

现在已经废弃了,但是也可以用,我们可以按照它的原理用GCD来实现。

使用异步加载的提示框.gif
好啦,MBProgressHUD就介绍到这里啦,( _ )/~~拜拜
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,637评论 25 708
  • 想要动笔写,想了半天,就这个名字吧,当年QQ软件流行的时候,留给自己起了这个名字,是因为那时候正在流行,自己却沉...
    68d59993b4ae阅读 172评论 0 0
  • 直面是解决问题的第一步。
    原野风阅读 88评论 0 0
  • 2017年3月16日,吴军老师在得到做了直播。这篇文章是对这场直播做的笔记。 时间管理 时间管理最简单的方法,就是...
    薛定饿着猫阅读 488评论 0 1