🎊 ConfettiKit

一个用于发射彩带的 Swift 包。其实现深受 Recreating iMessage Confetti 这篇博文和 Bryce Bostwick 的启发。

📦 添加包

ConfettiKit 使用 Swift Package Manager 进行分发。通过在您的 Package.swift 清单文件中添加为依赖项,或通过项目设置中的“Package Dependencies”来在项目中安装 ConfettiKit。

let package = Package(
    dependencies: [
        .package(url: "git@github.com:simonbs/ConfettiKit.git", from: "1.0.0")
    ]
)

🚀 开始使用

首先创建一个 ConfettiView 的实例,并在创建时传递一个 UIImage 数组。确保将此视图添加到您的视图层级结构中。

final class ViewController: UIViewController {
    private let confettiView: ConfettiView = {
        let images: [UIImage] = [...]
        let this = ConfettiView(images: images)
        this.translatesAutoresizingMaskIntoConstraints = false
        return this
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        view.addSubview(confettiView)
        NSLayoutConstraint.activate([
            confettiView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            confettiView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            confettiView.topAnchor.constraint(equalTo: view.topAnchor),
            confettiView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
        ])
    }
}

当您想要发射彩带时,例如响应用户交互,调用彩带视图上的 shoot() 函数。

confettiView.shoot()

默认情况下,ConfettiView 从顶部到底部发射彩带,创建如下所示的效果。

您可以配置它从屏幕中心向左侧发射彩带。

let images: [UIImage] = [...]
let confettiView = ConfettiView(mode: .centerToLeft, images: images)

这可以用来创建如下所示的效果。

👨‍💻 贡献

ConfettiKit 专门为我的副项目而构建,包括 Runestone Text EditorRe: Toot,因此其 API 可能有限。但是,非常欢迎包含错误修复和新功能的 pull request。只要它们符合 ConfettiKit 的愿景并提供普遍有用的功能,我将很乐意审查并在准备就绪后合并它们。

克隆仓库以开始进行项目开发。

git clone git@github.com:simonbs/ConfettiKit.git