1 つのビューに 15 枚の画像が表示されています。ユーザーの声に基づいて画像をスケーリングする必要があります (ユーザーが話す声が大きいほど、画像を拡大する必要があります)。現時点では、AVAudioRecorder で averagePowerForChannel を使用しており、オーディオを頻繁にサンプリングして、すべての画像を適切にスケーリングしています。スケーリングを行うために使用しているコードは次のようになります。
- (void)scaleImages:(float)scalingFactor {
for (UIView *imageHolder in self.imageView.subviews) {
UIView *image = [imageHolder.subviews objectAtIndex:0];
image.transform = CGAffineTransformMakeScale(scalingFactor, scalingFactor);
image.hidden = scalingFactor <= 0.0f;
}
}
画像が 1 枚の場合は問題なく動作しますが、15 枚の画像すべてに対してこれを行うと、信じられないほどラグが発生し、応答しなくなります。サンプリングの頻度を下げる、サンプリング出力を正規化するなど、いくつかの異なるオプションを試しましたが、違いはないようです。
これをどのように最適化しますか?