Boing 0.8.1

Boing 0.8.1

Sahel Jalal 维护。



Boing 0.8.1

Boing

Build Status Version Platform License

Boing 是一个简单而强大的 Swfit 视图动画 API。受到许多其他动画库的启发,它尝试将许多选项聚合并简化为一个单一且无缝的集成,可以在任何项目中重用。

安装

Swift 包管理器

从 Xcode 打开菜单项 File -> Swift Packages 并选择 添加包依赖。将此 GitHub 位置粘贴到文本框中,然后将目标添加到您的项目中。

CocoaPods

更新您的 Podfile 并运行 pod install

pod 'Boing'

Carthage

更新您的 Cartfile 并运行 carthage update

github "pokanop/boing"

动画

基本的API模式扩展到任何UIView,允许您执行简单的命令来动画化视图。

例如,使用预设动画,您可以这样做

view.boing()

动画选项

您可以通过简单的方式自定义任何动画并提供完成处理程序

view.boing(options: [.duration(0.3)]) {
  // add your completion code
}

可用选项包括

delay(TimeInterval)
duration(TimeInterval)
curve(AnimatingCurve)
damping(CGFloat)
velocity(CGFloat)
repeatCount(Float)
autoreverse(Bool)
removeOnCompletion(Bool)
noAnimate(Bool)

请注意,默认情况下动画会持续,或者removeOnCompletion是假的。

动画类型

Boing提供了几种基本和预设动画,包括

translate(CGFloat, CGFloat)
scale(CGFloat, CGFloat)
rotate(CGFloat)
anchorPoint(CGPoint)
backgroundColor(UIColor)
cornerRadius(CGFloat)
alpha(CGFloat)
frame(CGRect)
bounds(CGRect)
center(CGPoint)
size(CGSize)
borderColor(UIColor)
borderWidth(CGFloat)
shadowColor(UIColor)
shadowOffset(CGSize)
shadowOpacity(CGFloat)
shadowRadius(CGFloat)
transform(CGAffineTransform)
layerTransform(CATransform3D)
fadeIn(AnimatingDirection)
fadeOut(AnimatingDirection)
slide(AnimatingDirection)
squeeze(AnimatingDirection)
flip(AnimatingDirection)
zoomIn
zoomOut
fall
shake
pop
morph
flash
wobble
swing
boing

Boing还提供了实用方法和动画,包括

delay(time)
identity(time)
now

合成动画

对于单个动画上下文,库将合并或组合多个动画。它使用相同的动画选项(如durationdelay)运行它们。

您可以使用以下方式运行组合动画:

view.animate(
  animations: [.boing, .backgroundColor(.blue)],
  options: [.duration(0.5), .curve(.easeInOut)]
)

链式动画

除了能够组合或合并动画之外,Boing还允许您通过简单的构建器风格API调用链式调用。

您可以使用以下方式按顺序执行多个动画:

view
  .boing()
  .scale(x: 0.5, y: 0.5)
  .alpha(0.5)
  .wobble()

立即变换

Boing还提供了noAnimate选项,可以在任何动画中使用。这会跳过动画并立即应用任何变换。

view
  .cornerRadius(20.0, options: [.noAnimate(true)])
  .animate(animations: [.borderWidth(4.0), .borderColor(.red)])

此外,还可以使用now()来应用无动画的更改。

view
  .scale(x: 0.5, y: 0.5)
  .rotate(45.0)
  .backgroundColor(.green)
  .now()

这些工具允许您不仅使用Boing进行动画,还可以使用标准视图和层变换!

演示

请查看演示应用程序以查看库中可用的各种动画。

Demo文件夹下运行

pod install

然后打开位于Demo/Demo.xcworkpace的工作区以运行应用程序。

鸣谢

本项目主要受到以下优秀项目的灵感和启发

贡献

贡献使得开源社区成为一个绝佳的学习、灵感和创作之地。您所做的任何贡献都将被高度赞赏

  1. 创建项目分支
  2. 创建您的特性分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m '添加一些AmazingFeature'
  4. 推送分支(git push origin feature/AmazingFeature
  5. 打开拉取请求

许可

根据MIT许可证分发。