测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可 | MIT |
发布最后发布 | 2016年5月 |
由 Emilio Pelaez,Cody Kimberling,Matt Tea,Jaz Garewal 维护。
SAAnimationView
是一个框架,允许您以编程方式创建动画。它在动画未暂停的任何时候使用 CADisplayLink
更新每一帧。Savvy Apps 先前是由我们在为 Cato Institute 的播客应用 制作动画的工作中受到启发而创建此框架的。此框架不依赖于图片,这使得改变它变得更加容易,并减轻了应用程序大小的负担。一旦基本代码就绪,添加和修改动画曲线和时序就变得简单。
SAAnimationViews
可能会负面对您应用程序的性能产生负面影响SAAnimationView
不是一个现成解决方案,它需要您实现实际的动画SAAnimationView 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile
pod '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
,并使用它来设置属性,如behavior
、duration
等。如果想让应用程序立即开始播放,您也可以在这里实现。
SAAnimationView由Emilio Peláez在Savvy Apps编写。我们鼓励反馈或拉取请求。
SAAnimationView可以在MIT许可证下使用。有关详细信息,请参阅LICENSE文件。