Github、cocoachina、cocoa4app等寻找了很多swift版本的HUD,都不太满意。综合对比,并没有找到好用合适的HUD开源库。于是乎 SwiftProgressHUD
是目前比较好用美观、多功能的HUD。用法如下:
要求
- swift 3.0+
- iOS 8.0+
- ARC
添加 SwiftProgressHUD
到你的工程
一、CocoaPods
1.将 SwiftProgressHUD
添加到你的 Podfile
pod 'SwiftProgressHUD'
2.安装或者更新
pod install
// 或者
pod update
3.在你需要使用 SwiftProgressHUD
的地方import
import SwiftProgressHUD
二、Carthage
1.将 SwiftProgressHUD
添加到你的 Cartfile
github "YJManager/SwiftProgressHUD"
2.编译安装
carthage update
3.配置
1.点击工程 -> 2.Target -> 3.Linked Frameworks and Libaries ->
4.点击+号 ->Add Other... -> 5.找到Framework选中点击open ->
6. build phases -> 7.New Run Script Phase -> 8.将 /usr/local/bin/carthage copy-frameworks 拷贝到Script ->
9. Input Files —> $(SRCROOT)/Carthage/Build/iOS/[你的框架名称]
使用举例
在需要等待的时候, 可以使用 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()}
详细的用法请参考 SwiftProgressHUDDemo