SwiftProgressHUD
SwiftProgressHUD
是一个 iOS 悬浮窗类,用于在后台线程中执行工作期间显示透明的悬浮窗(HUD),其中包括指示器和/或标签。此 HUD 旨在作为未文档化、私有的 UIKit
UIProgressHUD
的替代品,并具有一些附加功能。
效果
1 | 2 | 3 | 4 |
---|---|---|---|
1 | 2 | 3 | 4 |
---|---|---|---|
要求
SwiftProgressHUD
在 iOS 8+ 上工作,并需要 ARC 来构建。它依赖于以下 Apple 框架,这些框架应已包含大多数学术代码模板中:
- Swift 3.0+
- Foundation.framework
- UIKit.framework
- CoreGraphics.framework
为了构建 SwiftProgressHUD
,您需要最新的开发工具。旧的 Xcode 版本可能会工作,但不会明确维护兼容性。
将 SwiftProgressHUD 添加到你的项目
CocoaPods
CocoaPods 是将 SwiftProgressHUD
添加到项目的推荐方式。
- 在你的 Podfile 中添加
SwiftProgressHUD
的 pod 条目。
pod 'SwiftProgressHUD'
- 运行以下命令来安装 pod(s)
pod install
- 使用以下方式将
SwiftProgressHUD
包含在你的项目中,你需要的地方
import SwiftProgressHUD
Carthage
- 将 SwiftProgressHUD 添加到你的 Cartfile。
github "stackhou/SwiftProgressHUD"
- 运行
carthage update
- 按照 标准 Carthage 安装说明 的其余部分,将 SwiftProgressHUD 添加到你的项目。
使用示例
在需要等待时,可以使用 showWait
,代码及效果如下
/// 设置蒙版背景颜色, 默认是clear
// SwiftProgressHUD.hudBackgroundColor = UIColor.black.withAlphaComponent(0.2)
/// 开始loading...
SwiftProgressHUD.showWait()
/// 模拟 1s后 加载完成
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
SwiftProgressHUD.hideAllHUD()
}
加载成功时,提示可以使用 showSuccess
,代码及效果如下
SwiftProgressHUD.showSuccess("加载成功")
/// 模拟 1s后 加载完成
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
SwiftProgressHUD.hideAllHUD()
}
加载失败时,提示可以使用 showFail
,代码及效果如下
SwiftProgressHUD.showFail("加载失败")
/// 模拟 1s后 加载完成
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
SwiftProgressHUD.hideAllHUD()
}
友情提示信息,可以使用 showInfo
,代码及效果如下
SwiftProgressHUD.showInfo("请稍后")
/// 模拟 1s后 加载完成
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
SwiftProgressHUD.hideAllHUD()
}
错误Toast提示信息,可以使用 showOnlyText
,代码及效果如下
SwiftProgressHUD.showOnlyText("请输入合法的手机号")
/// 模拟 1s后 加载完成
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
SwiftProgressHUD.hideAllHUD()
}
状态栏提示信息,可以使用 showOnStatusBar
,代码及效果如下
SwiftProgressHUD.showOnStatusBar("你有一条新消息", autoClear: true, autoClearTime: 1, textColor: UIColor.orange, backgroundColor: UIColor.lightGray)
/// 模拟 1s后 加载完成
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
SwiftProgressHUD.hideAllHUD()
}
加载动画提示,可以使用 showAnimationImages
,代码及效果如下
let animationDuration = 70 // 动画时间 单位毫秒Int
var loadingImages = [UIImage]()
for index in 0...16 {
let loadImageName = String(format: "new_brand_progress%02d", index)
if let loadImage = UIImage(named: loadImageName) {
loadingImages.append(loadImage)
}
}
SwiftProgressHUD.showAnimationImages(loadingImages, timeMilliseconds: animationDuration, backgroundColor: backgroundColor, scale: scale)
/// 模拟 1s后 加载完成
DispatchQueue.main.asyncAfter(deadline: .now() + 4) {
SwiftProgressHUD.hideAllHUD()
}
1 | 2 | 3 |
---|---|---|
许可协议
此代码根据 MIT 许可协议 的条款和条件分发。
变更日志
每一项 MBProgressHUD 发布的简要总结可以查看变更日志。