Skip to content

Latest commit

 

History

History
208 lines (148 loc) · 8.11 KB

README_CN.md

File metadata and controls

208 lines (148 loc) · 8.11 KB

FlyHUD: Easy-to-use HUD in Swift FlyHUD: Easy-to-use HUD in Swift

Swift Platforms CocoaPods SPM Carthage Doc License

简体中文 | English

这是一款轻量级且易于使用的 HUD,用于显示 iOS 和 tvOS 上正在进行的任务的进度和状态。

屏幕截图

要求

  • iOS 12.0+
  • tvOS 12.0+
  • Xcode 14.1+
  • Swift 5.7.1+

安装

Swift Package Manager

...使用 swift build

如果你使用 Swift Package Manager,可在你的 Package.swift 文件添加依赖,并将 HUD 库导入到所需的目标中:

dependencies: [
    .package(url: "https://github.com/liam-i/FlyHUD.git", from: "1.5.12")
],
targets: [
    .target(
        name: "MyTarget", dependencies: [
            .product(name: "FlyHUD", package: "FlyHUD"),         // 可选
            .product(name: "FlyProgressHUD", package: "FlyHUD"), // 可选
            .product(name: "FlyIndicatorHUD", package: "FlyHUD") // 可选
        ])
]

...使用 Xcode

如果你使用 Xcode,那么你应该:

  • File > Swift Packages > Add Package Dependency
  • Add https://github.com/liam-i/FlyHUD.git
  • Select "Up to Next Minor" with "1.5.12"

Tip

相关详细教程,请查看:Apple Docs

CocoaPods

如果你使用 CocoaPods,可将一下内容添加到你的 Podfile 中:

source 'https://github.com/CocoaPods/Specs.git'
# 或者使用 CND 源
# source 'https://cdn.cocoapods.org/'
platform :ios, '12.0'
use_frameworks!

target 'MyApp' do
  # 使用 FlyHUD、FlyIndicatorHUD 和 FlyProgressHUD 组件。
  pod 'FlyHUD', '~> 1.5.12'

  # 或者,只使用 FlyHUD 组件。
  pod 'FlyHUD', '~> 1.5.12', :subspecs => ['FlyHUD']

  # 或者,只使用 FlyHUD 和 FlyIndicatorHUD 组件。
  pod 'FlyHUD', '~> 1.5.12', :subspecs => ['FlyIndicatorHUD']

  # 或者,只使用 FlyHUD 和 FlyProgressHUD 组件。
  pod 'FlyHUD', '~> 1.5.12', :subspecs => ['FlyProgressHUD']
end

并运行 pod install

Important

需要 CocoaPods 1.13.0 或更高版本。

Carthage

如果你使用 Carthage, 可将以下内容添加到你的 Cartfile 中:

github "liam-i/FlyHUD" ~> 1.5.12

并运行 carthage update --platform iOS --use-xcframeworks

用法

在你的应用程序中使用 HUD 非常简单。

  • 显示不确定任务的状态:
let hud = HUD.show(to: view)
DispatchQueue.global().async {
    // Do something...
    DispatchQueue.main.async {
        hud.hide()
    }
}
  • 显示任务进度:
let hud = HUD.show(to: view, mode: .progress(), label: "Loading")
Task.request { progress in
    hud.progress = progress
} completion: {
    hud.hide()
}
  • 显示仅文本的状态 HUD:
HUD.showStatus(to: view, label: "Wrong password")
  • 显示自定义视图的状态 HUD。例如,自定义一个 UIImageView
HUD.showStatus(to: view, mode: .custom(UIImageView(image: UIImage(named: "Checkmark")?.withRenderingMode(.alwaysTemplate))), label: "Completed")
  • 显示自定义视图的状态 HUD,并且将 UIImageView 位于左侧:
HUD.showStatus(to: view, mode: .custom(UIImageView(image: UIImage(named: "warning"))), label: "You have an unfinished task.") {
    $0.contentView.indicatorPosition = .leading
}
  • 设置显示和隐藏 HUD 时所使用的动画。 例如,动画风格、持续时间、弹簧阻尼:
HUD.showStatus(to: view, using: .animation(.slideUpDown, damping: .default, duration: 0.3), label: "Wrong password")
  • 启用键盘布局引导,以跟踪键盘在应用布局中的位置:
HUD.showStatus(to: view, label: "You have a message.") {
    $0.keyboardGuide = .center()
}

Warning

HUD 是一个 UI 类,因此只能在主线程上访问。

有关更多示例,包括如何通过异步操作(例如 URLSession)使用 HUD,以及如何自定义 HUD 样式,请查看项目里的 example。这里提供了完整的 API 文档

运行 example 项目,先克隆存储库,然后 cd 到根目录并运行 pod install。 最后在 Xcode 中打开 HUD.xcworkspace

文档

版本和 main 分支的文档可查看此处:

其他版本

为什么取名 FlyHUD?

FlyHUD 这个名字结合了 FlyHUD,在简洁性和表达能力上都很突出。Fly 暗示了快速、高效和灵活的含义,与 HUD 的实时性和即时性相契合。总体而言,FlyHUD 表达了 HUD 能够快速和高效的呈现信息和数据的能力。

致谢

协议

FlyHUD 使用 MIT 协议。有关详细信息,请参阅 LICENSE 文件。