我通过将一组 UIImage 对象传递给下面列出的动画方法,在我的 iOS 应用程序中使用 UIImageView.animationImages 制作了很多动画。当前我的 UIImage 对象数组包含单独的 PNG 文件。我知道我可以通过使用 & 传递 Sprite Sheet 而不是传递一组单独的 PNG 文件来制作类似的动画。一个比另一个有什么优势,或者 Sprite Sheet 用于不同的目的?
- (void) startImageViewAnimation:(UIImageView *)imageView WithImages:(NSArray*)imageArray orBuildArrayWithImage:(NSString *)imageName duration:(CGFloat)duration repeatCount:(NSInteger)repeatCount soundFile:(NSString *)soundFile stopSoundAfterDuration:(CGFloat) stopSoundDuration
{
if([imageName length] != 0)
{
NSMutableArray *array = [[NSMutableArray alloc] init];
UIImage *image;
int index = 1;
NSString *string;
do
{
string = [NSString stringWithFormat:@"%@%02d.png", imageName, index++];
image = [UIImage imageNamed:string];
if(image)
[array addObject:image];
} while (image != nil);
imageView.animationImages = array;
[array release];
}
else
{
imageView.animationImages = imageArray;
}
imageView.animationDuration = duration;
imageView.animationRepeatCount = repeatCount;
[imageView startAnimating];
if([soundFile length] != 0)
{
[self loadSoundEffectAudio:soundFile];
}
}