私はいくつかの画像をアニメーション化しようとしています。画像は Retina 以外の iPad でも問題なく動作しますが、対応する Retina は遅く、アニメーションは指定された速度で循環しません。私が使用しているコードは以下のとおりで、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];
}