画像の配列を .animationImages プロパティにロードし、その配列をその場で変更できるようにするための最も効果的/効率的なソリューションを取得しようと、数日間戦ってきました。シナリオは次のとおりです。 - UIImageView が 1 つあります。 - ユーザー入力 (電話の動き、ジャイロ) に応じて、特定の画像配列を読み込んでアニメーション化します。- ユーザー入力 (タッチ) で、読み込まれたアニメーションを再生します。
これで、initWithData を使用して gyroHandler で実行されたブロックから呼び出された「NSThread detachNewThreadSelector」を使用して、画像の配列が別のスレッドにロードされます (特定の場合のみ)。他の開始方法は完全に失敗しました。
ここでの問題は、(現在のアニメーションが読み込まれてから) 初めてタッチしてアニメーションをトリガーすると、全体が約フリーズすることです。1 秒後にアニメーションを再生します。もう一度タッチすると、遅延やフリーズなしでアニメーションが正常に再生されます。
今、私はバックグラウンドでアニメーション化するためにどこかを読んでいます...私は使用してみました:
[imgAnimationKey performSelectorInBackground:@selector(startAnimating) withObject:nil];
しかし、結果は同じでした。
私の配列には 19 個の画像があり、常に同じ画像を持つ可能性が最も高いです。問題は、再生できるアニメーションが 5 つ以上ある可能性があるため、複数の UIImageView がないことです。
画像をプリロードして、最初の再生の遅延を回避する方法を知っている人はいますか? または、アニメーションを別のスレッドで実行して、この影響を回避できますか (間違っている可能性があります)。
ありがとう!