测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | Apache 2 |
已发布最新版本 | 2016年5月 |
由 Chris Cox 维护。
此控件为使用 UIImageView
动画一系列图像提供了替代方案。仅使用由单独的精灵帧组成的单个图像,动画只是简单地更新层的 contentsRect
。
精灵表由单个图像组成,该图像包含单个列的单独精灵帧。单独的精灵帧必须在整个图像边界内大小和间距均匀。典型用例是生成三个精灵表图像(1x,2x 和 3x)并将这些添加到 .xcassets
文件中,供 spritedAnimationView
在应用程序中使用。
一旦精灵表添加到 spritedAnimationView
(在 init
或稍后添加),spritedAnimationView
可以从第一个精灵帧到最后的精灵帧动画图像。可以通过属性设置帧率,默认为 60 fps(每秒帧数)。动画可以发生一次,通过 animationRepeatCount
属性进行循环。要开始动画,使用 -startAnimationWithCompletion:
方法。动画完成时会调用完成块。然而,如果 animationRepeatCount
设置为无限循环(设为 0),则不会调用此块。还提供了额外的方
提供单个精灵表,动画图像,并在完成时简单地重置到开始即可。但是,在某些情况下,通过提供两个不同的精灵表可以提供良好的用户体验。一个显示从状态 A 到状态 B 的动画,然后另一个精灵表显示状态 B 返回到状态 A。这样,在每个状态动画完成后,可以交换精灵表,并用另一个精灵图像替换。
列表精灵表 | 网格精灵表 |
---|---|
![]() |
![]() |
// Animate the sprited view.
[_animationView startAnimatingWithCompletion:^{
// When animation completes, toggle image.
_toggle = !_toggle;
UIImage *spriteImage =
[UIImage imageNamed:_toggle ? kSpriteGridImage : kSpriteListImage];
_animationView.spriteSheetImage = spriteImage;
}];
将spritedAnimationView
集成与向视图中添加UIImageView
类似。
#import "GOSSpritedAnimationView.h"
// Create a Sprited Animation View.
UIImage *spriteSheet = [UIImage imageNamed:@"myImage"];
GOSSpritedAnimationView *animationView =
[[GOSSpritedAnimationView alloc] initWithSpriteSheetImage:spriteSheet];
animationView.tintColor = [UIColor blueColor];
[self.view addSubview:animationView];
// To Animate.
[animationView startAnimatingWithCompletion:^{
NSLog(@"Done animating.");
}];