一个用于发射彩带的 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 Editor 和 Re: Toot,因此其 API 可能有限。但是,非常欢迎包含错误修复和新功能的 pull request。只要它们符合 ConfettiKit 的愿景并提供普遍有用的功能,我将很乐意审查并在准备就绪后合并它们。
克隆仓库以开始进行项目开发。
git clone git@github.com:simonbs/ConfettiKit.git