Swiftpack.co - Package - Harley-xk/Chrysan

Chrysan

CI Status Version Language License Platform twitter weibo

Chrysan 是一个简单易用的 HUD 库,使用 iOS 自带的 UIBlurEffect 毛玻璃特效。

使用基于 UIViewPropertyAnimator 的动画,可以自定义想要的效果

多种内置的指示器效果,同样支持自定义,并且支持 GIF 动图

进度指示器,内置环形和条形进度指示器,支持自定义进度文字和颜色

静态状态指示器, 内置带动画的成功和失败指示器,支持自定义路径动画

支持自定义扩展更多状态,支持自定义图标指示器,支持使用系统内置 SF Symbols 作为图标

纯文本展示,支持单行和多行文本

适配

Chrysan 2.x 是一个完全重写的版本,以支持更多的指示器类型、更多的动画配置,以及完全开放的自定义 API。

Chrysan 2.x 支持 iOS 11+ 以及 Swift 5.3+。如需支持更早的版本,请使用 1.x 版。

安装

注意:Chrysan 依赖 SnapKit 5.x 进行 UI 布局,确保你没有引用与其冲突的其他第三方库

通过 CocoaPods 安装

pod 'Chrysan'

通过 SPM 安装

向 Package.swift 添加依赖:

dependencies: [
    .package(url: "https://github.com/Harley-xk/Chrysan.git", .upToNextMajor(from: "2.0.0")),
],

通过 Carthage 安装

github "Harley-xk/Chrysan"

在命令行执行 carthage update 来完成编译,然后将 Chrysan.framework 添加到你的项目中。

确保将 Chrysan.framework 添加到 target 的 Embedded Binaries 配置项中

使用

在 ViewController 中访问 Chrysan

通过 viewController.chrysan 方法可以访问当前视图控制器的 chrysan 组件并自动创建。chrysan 会自动添加到 viewController 的根视图。

快速显示 Chrysan

chrysan.changeStatus(to: .loading(message: "正在加载"))

显示进度

let progress = 0.1

// 显示进度
chrysan.changeStatus(to: .progress(message: "正在下载", progress: progress))

// 自定义进度文字
chrysan.changeStatus(to: .progress(message: "正在下载", progress: progress, progressText: "325/512"))

隐藏 Chrysan

// 立刻隐藏 chrysan
chrysan.hide()
// 1 秒后隐藏 chrysan
chrysan.hide(afterDelay: 1)

预设状态

Chrysan 内置了多种状态可以使用:


public extension Status {
    /// 预设状态:静默状态
    static let idle = Status(id: .idle)

    /// 纯文本的状态,此时一般只显示文本内容
    /// - Parameter message: 文本内容,支持多行
    static func plain(message: String) -> Status {
        return Status(id: .plain, message: message)
    }

    /// 加载中状态, 所有的 loading 状态都具有相同的 id
    /// - Parameter message: 自定义消息内容
    static func loading(message: String? = nil) -> Status {
        return Status(id: .loading, message: message)
    }

    /// 预设状态:带进度的状态,所有的 progress 状态都具有相同的 id
    static func progress(
        message: String? = nil,
        progress: Double,
        progressText: String? = nil
    ) -> Status {
        return Status(
            id: .progress,
            message: message,
            progress: progress,
            progressText: progressText
        )
    }

    /// 预设状态:成功
    static func success(message: String? = nil) -> Status {
        return Status(id: .success, message: message)
    }

    /// 预设状态:失败
    static func failure(message: String? = nil) -> Status {
        return Status(id: .failure, message: message)
    }
}

更多内容请查看示例以及代码注释。

Github

link
Stars: 67

Dependencies

Used By

Total: 0

Releases

Mask color for HUD supported - 2020-10-10 05:16:37

Chrysan 2.0 is now published! - 2020-10-10 01:58:06

- 2020-10-10 00:11:15

Add new status: success and failure - 2020-09-29 10:12:28

Cocoapods Support - 2020-09-29 05:30:07

This is a Brand new Chrysan! - 2020-09-29 02:33:40

Support swift package manager - 2020-09-24 02:22:48

- 2020-06-01 13:02:10

fix #5

修复hide之后立刻调用 show 会导致父视图交互被锁定的问题 - 2020-05-28 02:40:30

父视图隐藏时没有正确移除的问题 - 2020-03-26 06:54:55

修复在 UIScrollView 中使用时错位和跟随滚动的问题 - 2020-03-10 15:18:32

适配 Swift 5 - 2019-04-30 07:44:10

适配 Swift 4.2 - 2018-09-18 07:27:50

增加自定义动画特性 - 2018-07-18 13:35:33

增加样式配置功能 - 2018-05-11 09:22:52

- 2017-11-01 09:22:08

- 2017-10-26 08:26:22