我在一个视图上显示了 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;
}
}
当我只有一个图像时,这很好用,但是当我对所有 15 个图像执行此操作时,它会变得非常滞后且反应迟钝。我尝试了几种不同的选项 - 减少采样频率,标准化采样输出等,但似乎没有任何区别。
我将如何优化这个?