GOSSpritedAnimationView 1.0.0

GOSSpritedAnimationView 1.0.0

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
已发布最新版本2016年5月

Chris Cox 维护。



  • Chris Cox

此控件为使用 UIImageView 动画一系列图像提供了替代方案。仅使用由单独的精灵帧组成的单个图像,动画只是简单地更新层的 contentsRect

安装

要求

  • Xcode 7.0 或更高版本。
  • iOS SDK 版本 7.0 或更高版本。

创建精灵表 assets

精灵表由单个图像组成,该图像包含单个列的单独精灵帧。单独的精灵帧必须在整个图像边界内大小和间距均匀。典型用例是生成三个精灵表图像(1x,2x 和 3x)并将这些添加到 .xcassets 文件中,供 spritedAnimationView 在应用程序中使用。

动画精灵表

一旦精灵表添加到 spritedAnimationView(在 init 或稍后添加),spritedAnimationView 可以从第一个精灵帧到最后的精灵帧动画图像。可以通过属性设置帧率,默认为 60 fps(每秒帧数)。动画可以发生一次,通过 animationRepeatCount 属性进行循环。要开始动画,使用 -startAnimationWithCompletion: 方法。动画完成时会调用完成块。然而,如果 animationRepeatCount 设置为无限循环(设为 0),则不会调用此块。还提供了额外的方

实现两状态动画

提供单个精灵表,动画图像,并在完成时简单地重置到开始即可。但是,在某些情况下,通过提供两个不同的精灵表可以提供良好的用户体验。一个显示从状态 A 到状态 B 的动画,然后另一个精灵表显示状态 B 返回到状态 A。这样,在每个状态动画完成后,可以交换精灵表,并用另一个精灵图像替换。

两个示例精灵表(显示列表和网格图标状态)

列表精灵表 网格精灵表
List Icon Grid Icon

双状态示例

// 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.");
}];