我正在尝试为一些图像设置动画。这些图像在非视网膜 iPad 上运行良好,但它们的视网膜对应物很慢,并且动画不会以指定的速率循环播放。我正在使用的代码如下所示,该方法每 1/25 秒调用一次。这种方法似乎比UIViewAnimations
.
if (counter < 285) {
NSString *file = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"Animation HD1.2 png sequence/file_HD1.2_%d", counter] ofType:@"png"];
@autoreleasepool {
UIImage *someImage = [UIImage imageWithContentsOfFile:file];
falling.image = someImage;
}
counter ++;
} else {
NSLog(@"Timer invalidated");
[timer invalidate];
timer = nil;
counter = 1;
}
}
我意识到有很多图像,但帧数较少的动画的性能是相同的。就像我说的,非视网膜动画效果很好。上面的每张图片大约是 90KB。我做错了什么还是这仅仅是 iPad 的限制?老实说,当它可以处理复杂的 3D 游戏之类的东西时,我很难相信它无法处理这样的事情,所以我想我做错了什么。任何帮助,将不胜感激。
编辑1:
从下面的答案中,我编辑了我的代码,但无济于事。执行以下代码会导致设备崩溃。
在viewDidLoad
NSString *fileName;
myArray = [[NSMutableArray alloc] init];
for(int i = 1; i < 285; i++) {
fileName = [NSString stringWithFormat:@"Animation HD1.2 png sequence/HD1.2_%d.png", i];
[myArray addObject:[UIImage imageNamed:fileName]];
NSLog(@"Loaded image: %d", i);
}
falling.userInteractionEnabled = NO;
falling.animationImages = humptyArray;
falling.animationDuration = 11.3;
falling.animationRepeatCount = 1;
falling.contentMode = UIViewContentModeCenter;
动画方法
-(void) triggerAnimation {
[falling startAnimating];
}