SAAnimationView 1.0.1

SAAnimationView 1.0.1

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2016年5月

Emilio PelaezCody KimberlingMatt TeaJaz Garewal 维护。



  • 作者
  • Emilio Pelaéz

SAAnimationView 是一个框架,允许您以编程方式创建动画。它在动画未暂停的任何时候使用 CADisplayLink 更新每一帧。Savvy Apps 先前是由我们在为 Cato Institute 的播客应用 制作动画的工作中受到启发而创建此框架的。此框架不依赖于图片,这使得改变它变得更加容易,并减轻了应用程序大小的负担。一旦基本代码就绪,添加和修改动画曲线和时序就变得简单。

特性

  • 暂停、继续和反转动画
  • 完全控制动画
  • 可以调整动画的持续时间而不会导致动画卡顿
  • 不使用图像,减少了应用程序大小
  • 快速迭代动画
  • 无需在更改时重新导出动画(或任何时候)

使用注意事项

  • 在您的应用程序中同时使用多个 SAAnimationViews 可能会负面对您应用程序的性能产生负面影响
  • SAAnimationView 不是一个现成解决方案,它需要您实现实际的动画

使用示例

Cato Audio Animation

安装

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

pod 'SAAnimationView'

如何使用

子类化 SAAnimationView

要开始使用 SAAnimationView,创建其子类并实现动画逻辑。以下是有两个简单动画的示例。

@interface AnimationView : SAAnimationView

这个示例是绘制空圆圈的简单动画,当动画执行时圆圈逐渐被绘制出来。

- (void)drawRect:(CGRect)rect {
  UIBezierPath *circlePath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect))
                                                            radius:CGRectGetWidth(rect) / 2 - 3
                                                        startAngle:0 endAngle:(self.progress * 2 * M_PI) clockwise:NO];
  [circlePath stroke];
}

如果您不希望使用 CoreGraphics 绘制内容,您也可以使用视图创建动画。SAAnimationView 有一个名为 update: 的方法,当动画未暂停时,会在每一帧被调用。

- (void)update:(CGFloat)delta {
  CGFloat scale = MAX(0.01, self.progress);
  self.imageView.transform = CGAffineTransformMakeScale(scale, scale);
}

实例化

您可以像其他视图一样使用代码实例化动画视图,或者通过Interface Builder添加UIView元素到场景中,并将自定义类设置为您的类。

初始化

初始化视图属性的最佳方式是覆盖initializeView,并使用它来设置属性,如behaviorduration等。如果想让应用程序立即开始播放,您也可以在这里实现。

作者 / 贡献

SAAnimationView由Emilio Peláez在Savvy Apps编写。我们鼓励反馈或拉取请求。

许可证

SAAnimationView可以在MIT许可证下使用。有关详细信息,请参阅LICENSE文件。