SnowGlobe 2.1.3

SnowGlobe 2.1.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布日期最新发布2016年10月
SPM支持 SPM

stringcode 维护。



SnowGlobe 2.1.3

  • 作者
  • stringcode

SnowGlobe.framework

SnowGlobe.framework 是一个易于使用的开源 iOS 框架,用 Swift 编写。它允许您在节假日季节为您的优秀应用程序添加令人愉悦的/奶酪般的复活节彩蛋。当用户摇晃设备时,您的应用程序“变成一个雪球”。利用 CAEmitterLayer 创建雪花飘落效果,当设备被摇晃时生成类似雪花球的动画。我这类东西简直是爱不释手。我认为沉浸在节日的氛围中,并对这种有点俗套的氛围情有独钟,原本就没有什么问题。

更多信息以及更好的文档格式,请访问 这里
如果您有任何问题/建议,随时可以通过 Twitter 给我发信息 @stringcode

安装

SnowGlobe 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod "SnowGlobe"

如何添加到您的项目中

  1. 将 SnowGlobe 文件夹复制到您的应用程序 "YourAwesomeApp" 项目文件夹中。
  2. 将 SnowGlobe.xcodeproj 文件拖放到您项目中。我通常创建一个框架文件夹以保持整洁,但这不是必需的
  3. 选择您的应用程序目标,点击加号图标添加嵌入的二进制文件。
  4. 选择 SnowGlobe.framework screenshot
  5. 在 AppDelegate.swift 或其 Obj-C 等价物中添加以下代码
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。