SVProgressHUD是什么?在iOS开发中,应该算是比较常用的一种HUD库,它可以在加载或操作过程中,让用户看到一个屏幕上的载入等待过程。
一、安装和导入SVProgressHUD
要使用SVProgressHUD需要使用CocoaPods导入依赖库。
platform :ios, '8.4'
target 'ProjectName' do
pod 'SVProgressHUD', '~> 2.2.5'
end
在项目中导入:
import SVProgressHUD
二、基本用法
SVProgressHUD有多种用法,这里先介绍一下最基本的用法。
显示进度:
SVProgressHUD.show()
显示带文字的进度提示:
SVProgressHUD.show(withStatus: "Loading...")
隐藏进度:
SVProgressHUD.dismiss()
三、进阶用法
1. 设置提示样式
SVProgressHUD提供了五种不同的样式和选项,可以根据需要自由设置。
以下是调用SVProgressHUD时可以设置的一些样式设置:
public enum SVProgressHUDStyle : UInt {
case light // 默认模式
case dark // 黑色背景模式
}
public enum SVProgressHUDMaskType : UInt {
case none // 没有遮罩
case clear // 不带颜色的遮罩
case black // 透明黑色遮罩
case gradient // 带有颜色渐变的遮罩
case custom // 自定义的遮罩,颜色由maskColor决定
}
public enum SVProgressHUDAnimationType : UInt {
case flat // 默认平面动画
case native // 系统动画 (MBProgressHUD 的旧API)
case custom // FadeIn / FadeOut 使用自定义动画 (一定要使用setAnimationImages:成为激活.)
}
public enum SVProgressHUDContentStyle : UInt {
case auto // 默认,可以根据成分设置样式;
case light // 黑色背景+灰色文本
case dark // 白色背景+白色文本
}
public func setDefaultMaskType(_ type: SVProgressHUDMaskType) // 改变遮罩样式
public func setBackgroundLayerColor(_ color: UIColor) // 修改背景层颜色
public func setDefaultStyle(_ style: SVProgressHUDStyle) // 进度条在前、消息在后。
public func setMinimumSize(_ minimumSize: CGSize) // 设置最小尺寸 默认为0,不限制最小值
public func setRingThickness(_ thickness: CGFloat) // 设置指示器环厚度(当在ring或customContent时有效)
public func setRingRadius(_ radius: CGFloat) // 设置指示器环半径
public func setHapticsEnabled(_ enabled: Bool) // 是否开启触觉反馈
2. 设置进度提示框的位置和宽高
您可以设置SVProgressHUD的位置和宽高来满足您所需的任何需求。可以通过以下方法实现这一点。
设置HUD高度和宽度:
SVProgressHUD.setDefaultMaskType(.black) // 设置背景颜色
SVProgressHUD.setMinimumSize(CGSize(width: 300, height: 200)) // 设置HUD的宽高
通过设置HUD的坐标位置,可以调整位置,这里将HUD移动到屏幕的底部中心。
SVProgressHUD.setDefaultMaskType(.black) // 设置背景颜色
SVProgressHUD.setMinimumSize(CGSize(width: 300, height: 200)) // 设置HUD的宽高
SVProgressHUD.setDefaultAnimationType(.flat) // 设置动画类型
SVProgressHUD.setDefaultStyle(.dark) // 设置样式
SVProgressHUD.setDefaultContentStyle(.dark) // 设置消息文字颜色
SVProgressHUD.setMinimumDismissTimeInterval(2) // HUD停留时间
SVProgressHUD.showSuccess(withStatus: "Success")
3. 自定义内容
除了默认的加载动画,SVProgressHUD还提供了一种自定义内容的选项。这就是为了使创建者有机会以自己的想法定制他们的HUD。处理这个的方法是自定义View的contentView属性。
下面是如何制作自定义内容的示例:
let content = UIView(frame: CGRect(x: 0, y: 0, width: 150, height: 100))
content.backgroundColor = .white // 设置自定义视图背景颜色
content.layer.cornerRadius = 5 // 设置自定义视图边角
let imageView = UIImageView(image: UIImage(named: "example")) // 加载图片视图
imageView.contentMode = .scaleAspectFit
imageView.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
content.addSubview(imageView)
SVProgressHUD.setCustomContentView(content) // 设置自定义视图
SVProgressHUD.show()
4. 更多高级用法
此外,SVProgressHUD还提供了其他一些有用的功能,例如HUD消失后执行的位于主线程的闭包、HUD中的文本细节、背景颜色和边角度、HUD在哪个窗口中显示等等。
SVProgressHUD.dismiss(withDelay: 2.0) // 两秒后消失
显示进度HUD的同时,可在HUD上面显示文本:
SVProgressHUD.showProgress(0.5, status: "请稍候...") // 显示带有进度条的文本HUD
设置HUD背景颜色和内容消息字体颜色:
// 设置进度条条的颜色
SVProgressHUD.setDefaultStyle(.custom)
SVProgressHUD.setDefaultMaskType(.none)
SVProgressHUD.setBackgroundColor(UIColor.white)
SVProgressHUD.setForegroundColor(UIColor.orange)
四、总结
本文介绍了SVProgressHUD的基本用法、进阶用法以及更多高级用法。通过本文的阅读可以让开发者更加了解如何使用SVProgressHUD优化自己的代码,为用户提供更好的体验。
最新评论