用Swift简单封装MBProgressHUD
这个第三方库在iOS开发中的知名度就不说了,只要是搞iOS开发的,不说都用过,肯定都知道这个.
由于目前要使用Swift写项目,看到有的人再Swift中使用SVProgressHUD,但由于OC习惯了用MBP,所以还是用MBP吧,抽空用Swift小小封装了一下MBProgressHUD
由于代码量很少,直接上代码吧
import UIKit
class XHProgressHUD: MBProgressHUD {
fileprivate class func showText(text: String, icon: String) {
let view = viewWithShow()
let hud = MBProgressHUD.showAdded(to: view, animated: true)
hud.label.text = text
let img = UIImage(named: "MBProgressHUD.bundle/\(icon)")
hud.customView = UIImageView(image: img)
hud.mode = MBProgressHUDMode.customView
hud.removeFromSuperViewOnHide = true
hud.hide(animated: true, afterDelay: 1)
}
class func viewWithShow() -> UIView {
var window = UIApplication.shared.keyWindow
if window?.windowLevel != UIWindowLevelNormal {
let windowArray = UIApplication.shared.windows
for tempWin in windowArray {
if tempWin.windowLevel == UIWindowLevelNormal {
window = tempWin;
break
}
}
}
return window!
}
class func showStatusInfo(_ info: String) {
let view = viewWithShow()
let hud = MBProgressHUD.showAdded(to: view, animated: true)
hud.label.text = info
}
class func dismiss() {
let view = viewWithShow()
MBProgressHUD.hide(for: view, animated: true)
}
class func showSuccess(_ status: String) {
showText(text: status, icon: "success.png")
}
class func showError(_ status: String) {
showText(text: status, icon: "error.png")
}
}
由于开发中使用到最多的就是提示成功、失败.但是如果用MBP原生的方法,每次都要设置view、text、延时等操作。而且有时候还要找到对应的view才能将菊花显示出来!
使用方法:
- 将MBProgressHUD集成到你的工程里,可以使用手动集成,也可以使用pod集成
- 将
XHProgressHUD.swift
文件拖到你的工程里(就是我上面这一份代码,你可以自己保存成一个swift文件)
代码演示
展示一个成功提示(1秒后自动消失)
XHProgressHUD.showSuccess("成功")
展示一个失败提示(1秒后自动消失)
XHProgressHUD.showError("错误")
菊花带字(常显)
XHProgressHUD.showStatusInfo("等待中...")
隐藏
XHProgressHUD.dismiss()