这是一个用于 iOS 8 及以上版本的 Apple HUD(音量、铃声、旋转等)的基于 Swift 的重新实现。
特征
- 通过 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
要使用Carthage将PKHUD集成到您的Xcode项目中,请在您的Cartfile
中指定它
github "pkluz/PKHUD" ~> 4.0
运行carthage update
以构建框架,并将构建的PKHUD.framework
拖放到您的Xcode项目中。
如何使用
将框架添加到您的项目后,您需要导入模块
import PKHUD
现在,您可以使用如下方式显示任意HUD(并自动在1秒后消失)
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。
- 如果您发现了一个错误,请创建一个问题。
- 如果您有功能请求,请创建一个问题。
- 如果您想贡献,请提交pull请求。
定制
您可以使用两个属性来自定义一般行为。
-
PKHUD.sharedHUD.dimsBackground: Bool
定义了显示HUD时背景是否会被轻微变暗。 -
PKHUD.sharedHUD.userInteractionOnUnderlyingViewsEnabled: Bool
定义了显示HUD时底层的视图是否能够响应触摸操作。
此外,您还可以自由地创建自己的自定义内容视图。它们可以从任何 UIView
类型或预定义的基本类 PKHUDSquareBaseView
和 PKHUDWideBaseView
继承。
注意:既不能定制一般的外观和感觉,也没有计划添加该功能。您可以根据意愿提供任何内容视图,但模糊、圆角和阴影将保持不变。
鸣谢
PKHUD 由 Philip Kluz 拥有和维护。其他维护者是
- Piergiuseppe Longo twitter
Xamarin
如果您是 Xamarin 开发者,可以使用这个 端口。
许可协议
MIT 许可协议 (MIT)
版权所有 (c) 2015 Philip Kluz ([email protected])
本许可证授予任何获得本软件及其相关文档文件(统称为“软件”)副本的个人,以免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人员进行此类操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的全部或主要部分副本中。
软件按“现有所供”方式提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他法律理论,无论此类索赔、损害或其他责任是否由于软件或软件的使用或其他方式产生。