先放demo地址:github.com/KeWangKW/99...
- 封装只是为了少写代码而已
(一)MBProgressHUD------使用:
-
- 默认展示
let hud = MBProgressHUD.showAdded(to: superView, animated: true)
-
- 默认展示 + 文字
hud.label.text = "Text"
hud.detailsLabel.text = "Deatil"
-
- 修改背景边框颜色
hud.bezelView.style = .solidColor
//设置此属性,可随心随遇的设置背景色hud.bezelView.color = UIColor.init(white: 0, alpha: 0.3)
- 背景色透明度 alpha 为0时,也能隐藏背景框
-
- 修改动图和文字颜色
hud.contentColor = UIColor.red
-
- 修改内容 和 边框 之间的间距 ,margin默认值是20,以下是修改成5的样式
hud.margin = 5
-
- 展示 进度条 类型
hud.mode = .determinate
//饼状进度条hud.mode = .determinateHorizontalBar
//线型进度条hud.mode = .annularDeterminate
//环状进度条hud.progress = xxxx
//设置进度- 如果要文字展示出进度,设置 hud.label.text = 即可
-
- 使用自定义图片
hud.mode = .customView
hud.customView = UIImageView(image: UIImage(named: "HUD_success") )
hud.mode = .customView
let imageView = UIImageView()
if let localGifURL = Bundle.main.url(forResource: "加载缓存", withExtension: "gif") {
imageView.sd_setImage(with: localGifURL, completed: nil)
}
(二)MBProgressHUD------封装:
一级封装:
- 封装文件名:
HUD.swift
- 展示HUD方法名:showMBProgressHUD
- 传递参数:
- /// view:展示所在View
- /// mode:类型:
- /// MBProgressHUDModeIndeterminate:普通加载动图
- /// MBProgressHUDModeDeterminate:饼状进度条
- /// MBProgressHUDModeDeterminateHorizontalBar:水平进度条
- /// MBProgressHUDModeAnnularDeterminate:圆环进度条
- /// MBProgressHUDModeCustomView:显示自定义视图
- /// MBProgressHUDModeText:只显示标签
- /// bezelViewColor:边框的背景色
- /// contentColor:普通加载动图、文字颜色
- /// text:展示文字
- /// detailText:展示详情文字
- /// margin:内容到边框 最小边距 默认20
- /// imageV:自定义图片
- 隐藏HUD方法名:func hide(_ view: UIView? = nil)
二级封装【封装常用样式】:
-
默认展示 可展示文字
- HUD.show()
- HUD.show(text: "233")
-
展示纯文字 默认1.5秒后消失
- HUD.showText(text: "23333")
-
展示成功图片 可展示文字 默认1.5秒后消失
- HUD.showSuccess()
- HUD.showSuccess(text:"2333")
-
展示失败图片 可展示文字 默认1.5秒后消失
- 同上
-
展示提示图片 可展示文字 默认1.5秒后消失
- 同上
-
展示进度条
- let hud = HUD.showProgress(text: "进度")
- hud.progress = 0.3 //设置进度
-
以上方法中
view
参数是指要展示HUD的view,不传此参数默认展示在当前视图控制器上 -
以上是我在自己项目中常用的样式,有其他样式时可在 extension HUD 扩展方法中添加,或者在一级封装的方法中添加属性
-
封装后,调用展示仅用一行代码就能完成 如:
HUD.showSuccess(text:"2333")
隐藏:HUD.hide()
-
GIF演示如下: