ALAnimationView 是一个自定义的 UIView 子类,允许您从一系列的 UIImages 中创建动画。在的に,它扩展了 UIImageView 类的默认图像动画支持,允许您在任何点开始、停止和倒放动画。它提供了访问当前动画帧的功能,并让您定义动画是否应该重复(循环)。
您还可以通过一系列委托方法对动画事件(如击中某个帧、倒放、开始播放等)做出反应。最后,该类包含一个便利方法,这让填充它作为帧接收的 UIImages 列表变得更加容易。
在下面的文档中了解如何使用该类
要在此项目中使用此类,您只需复制 ALAnimationView.h 和 ALAnimationView.m 文件。如果您正在使用 Cocoapods,建议您将 'ALAnimationView' pod 添加到 Podfile 中。
使用 ALAnimationView 类非常简单
初始化
在下面的例子中,假设 animationImages 是一个包含一系列 UIImages 的 NSArray
ALAnimationView *animationView = [[ALAnimationView alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 60.0)
animationImages:animationImages
animationDuration:1.0
repeats:YES];
便利方法
ALAnimationView 包含便利方法,可用于轻松填充您将要用于动画的 UIImages 数组,假设您使用标准的命名规范。使用此方法时,需要注意以下要素 - 图像名称 是图像的前缀。 帧数 表示您动画中有多少个图像 - 用数字命名文件,从1开始。最后,零的个数 表示后缀数字格式 - 例如,具有3个零的序列的第一帧文件将结束于 "001"。
以下是如何使用此方法的示例
//- The method:
NSArray *animationImages = [ALAnimationView animationImagesArrayWithName:@"Bird" numberOfFrames:10 numberOfZeroes:3];
//- is equivalent to:
NSArray *animationImages = @[
[UIImage imageNamed:@"Bird001"],
[UIImage imageNamed:@"Bird002"],
[UIImage imageNamed:@"Bird003"],
[UIImage imageNamed:@"Bird004"],
[UIImage imageNamed:@"Bird005"],
[UIImage imageNamed:@"Bird006"],
[UIImage imageNamed:@"Bird007"],
[UIImage imageNamed:@"Bird008"],
[UIImage imageNamed:@"Bird009"],
[UIImage imageNamed:@"Bird010"]
];
控制动画
控制动画非常直接
[animationView play]; //<- starts the animation;
[animationView stop]; //<- stops (pauses) the animation;
[animationView rewind]; //<- rewinds the animation;
要检查当前帧,只需使用
animationView.currentFrame;
委托方法
最后,如果您想让您的应用程序对 UIAnimatioView 的事件做出反应,您只需要设置一个符合 ALAnimationViewDelegate 协议的委托。该协议有以下可选方法
-(void)animationViewDidStartPlaying:(ALAnimationView *)animationView;
-(void)animationViewDidStopPlaying:(ALAnimationView *)animationView;
-(void)animationViewDidRewind:(ALAnimationView *)animationView;
-(void)animationView:(ALAnimationView *)animationView didGoToFrame:(NSInteger)frameNumber;
要看到类如何运行,请下载此项目。该项目包括一个可以在 iPhone 模拟器或具有示例代码的设备上运行的程序。
希望这有助于您!
此组件可在 MIT 许可证下使用。