SnowGlobe.framework 是一个易于使用的开源 iOS 框架,用 Swift 编写。它允许您在节假日季节为您的优秀应用程序添加令人愉悦的/奶酪般的复活节彩蛋。当用户摇晃设备时,您的应用程序“变成一个雪球”。利用 CAEmitterLayer 创建雪花飘落效果,当设备被摇晃时生成类似雪花球的动画。我这类东西简直是爱不释手。我认为沉浸在节日的氛围中,并对这种有点俗套的氛围情有独钟,原本就没有什么问题。
更多信息以及更好的文档格式,请访问 这里。
如果您有任何问题/建议,随时可以通过 Twitter 给我发信息 @stringcode。
SnowGlobe 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "SnowGlobe"
import UIKit
import SnowGlobe
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var snowGlobeView: SnowGlobeView?
func applicationDidBecomeActive(application: UIApplication) {
if snowGlobeView == nil {
let bounds = application.keyWindow?.bounds
snowGlobeView = SnowGlobeView(frame: bounds!)
snowGlobeView?.shakeToSnow = true
application.keyWindow?.addSubview(snowGlobeView!)
}
}
}
编译、运行并摇晃它!
CAEmitterLayer类为Core Animation提供了粒子发射系统。粒子由CAEmitterCell的实例定义。SnowGlobeView重写了UIView的layerClass方法,并返回CAEmitterLayer,这样UIView就由CAEmitterLayer而不是CALayer支持。CAEmitterLayer需要一个CAEmitterCells数组。只要设置内容为snowFlakeImage.CGImage的单个CAEmitterCell数组就足够了。有很多属性需要设置。例如,有大小和大小范围。大小值将是随机值大小+范围。使用这些属性和范围,我们可以创建令人信服的动态暴风雪效果。
您可以将SnowGlobeView简单地添加到任何视图的子视图中,当它移动到窗口时,它将开始动画粒子。然而,SnowGlobeView是为作为UIApplication的关键窗口的子视图而创建的,并将shakeToSnow属性设置为true。这将创建CMMotionManager,它监测加速计,并在达到阈值时简短地动画下雪。由于SnowGlobeView被添加到关键窗口中,您将在整个UIViewController层次结构上获得下雪效果。
存在lighterSnowMode属性,如果设置为是,则下雪密度降低。
存在两个类方法lightSnowFlakeImage和darkSnowFlakeImage,它们提供了默认的雪片图像。您还可以设置自定义图像。建议的大小为74 X 74像素@2x。