之前给大家分享过系统的中间弹框,底部弹框UIAlertController,今天来补充一下MBProgressHUD的应用吧 YoY
首先我用Cocoapods导入了MBProgressHUD这个第三方库,关于Cocoapods的安装与使用就不给大家详细讲解啦,有一篇很好的文章分享给大家:CocoaPods的安装使用和常见问题http://www.jianshu.com/p/6e5c0f78200a
好啦好啦,跑远啦,嘿嘿,导入MBProgressHUD之后要记得创建了桥接文件哦,我们现在写的可是swift呀。创建文件以后千万要记得设置这里:
好啦,一切准备就绪,开始敲代码:
首先,我们在storyboard里面创建四个按钮:
我们最常见的提示框
@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)
}
只有文字的提示框
@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)
}
自定义的提示框
@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)
}
使用异步加载的提示框
前面的几种提示框都很好理解,在多数项目中,还会涉及到异步操作的等待提示,比如网络下载数据,那就要在提示的时候,后台下载数据,完成后再自动隐藏掉。
@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来实现。