Swift之多样的MBProgressHUD

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

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

Swift之多样的MBProgressHUD_第1张图片
设置桥接文件.png

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

首先,我们在storyboard里面创建四个按钮:
Swift之多样的MBProgressHUD_第2张图片
首页.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)

}
Swift之多样的MBProgressHUD_第3张图片
我们最常见的提示框.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)
}
Swift之多样的MBProgressHUD_第4张图片
只有文字的提示框.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)
}
Swift之多样的MBProgressHUD_第5张图片
自定义的提示框.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来实现。

Swift之多样的MBProgressHUD_第6张图片
使用异步加载的提示框.gif
好啦,MBProgressHUD就介绍到这里啦,( _ )/~~拜拜

你可能感兴趣的:(Swift之多样的MBProgressHUD)