这是一个基于 Swift 重新实现的 Apple HUD (音量、静音、旋转等) 针对 iOS 8 和更高版本。
功能
- 通过 UIVisualEffectsView 提供 iOS 8 的官方模糊效果。
- 适当的 旋转支持。
- 大小不绑定 设备。
- 在展示的视图控制器、警告消息等上运行。
- 附带一些 免费 资源 - 复选标记、叉号、进度指示器等。
- 以及一些 动态 图标。
- 作为一个 iOS 8 框架 构建。
安装
推荐的方法是使用 CocoaPods。
CocoaPods
要使用 CocoaPods 在 Swift 2 中安装 PKHUD,请在 Podfile 中包含以下内容
pod 'PKHUD', '~> 3.0'
要使用 CocoaPods 在 Swift 3.x 中安装 PKHUD,请在 Podfile 中包含以下内容
pod 'PKHUD', '~> 4.0'
要使用 CocoaPods 在 Swift 4.x 中安装 PKHUD,请在 Podfile 中包含以下内容
pod 'PKHUD', '~> 5.0'
Carthage
Carthage 是一个去中心化的依赖管理器,它会为您构建依赖并为您提供二进制框架。
您可以使用以下命令通过 Homebrew 安装 Carthage:
$ brew update
$ brew install carthage
要将 PKHUD 集成到您的 Xcode项目中并使用 Carthage,请在您的 Cartfile
中指定它。
github "pkluz/PKHUD" ~> 4.0
运行 carthage update
来构建框架并将构建好的 PKHUD.framework
拖动到您的 Xcode项目中。
如何
在将框架添加到您的项目后,您需要导入模块。
import PKHUD
现在,您可以按照以下示例显示任何 HUD(并在一秒后自动消失)
HUD.flash(.success, delay: 1.0)
或者 使用完成处理程序
HUD.flash(.success, delay: 1.0) { finished in
// Completion Handler
}
或者,您可以使用更详细且更灵活的“管道”API
PKHUD.sharedHUD.contentView = PKHUDSuccessView()
PKHUD.sharedHUD.show()
PKHUD.sharedHUD.hide(afterDelay: 1.0) { success in
// Completion Handler
}
您还可以热插拔内容视图 - 如果您想首先显示一个进度 HUD,然后在该异步操作完成后将其转换为成功或错误 HUD,这可能很有用。
HUD.show(.progress)
// Now some long running task starts...
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
// ...and once it finishes we flash the HUD for a second.
HUD.flash(.success, delay: 1.0)
}
请注意,PKHUD 伴随多种内容视图。您可以在项目文件夹以及 Xcode 中的 ContentViews
组中找到它们。
通信 (致谢 AlamoFire)
- 如果您需要 帮助,请使用 Stack Overflow。 (标签 'pkhud')
- 如果您想 提出一个问题,请使用 Stack Overflow。
- 如果您 发现了一个错误,请创建一个问题。
- 如果您 有一个特性请求,请创建一个问题。
- 如果您 想要做出贡献,请提交一个拉取请求。
自定义
您可以使用以下两个属性来自定义一般行为:
-
PKHUD.sharedHUD.dimsBackground: Bool
定义了在显示 HUD 时是否稍微变暗背景。 -
PKHUD.sharedHUD.userInteractionOnUnderlyingViewsEnabled: Bool
定义了在显示 HUD 时是否允许底部视图响应用户操作。
此外,您还可以创建您自己的自定义内容视图。它们可以是从任何 UIView
类型或预定义的基本类 PKHUDSquareBaseView
和 PKHUDWideBaseView
继承而来的。
注意:无法自定义一般的外观和感觉,也没有计划添加该功能。您可以提供任何希望的内容视图,但模糊、圆角和阴影将保持不变。
致谢
PKHUD 由 Philip Kluz 拥有和维护。其他维护者包括
- Piergiuseppe Longo twitter
Xamarin
如果你是 Xamarin 开发者,可以使用这个 端口。
许可证
The MIT License (MIT)
版权所有 (C) 2015 Philip Kluz ([email protected])
在此特此授予任何人免费获取本软件和关联文档文件(“软件”)的副本(“许可证”),在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向获得软件的人提供软件以进行此目的,受以下条件限制
上述版权声明和许可声明应包含在软件的所有副本或实质部分中。
软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权行为或其他方式的诉讼,源于、因与软件或其使用或任何其他事项相关。