【发布时间】:2013-01-23 22:12:47
【问题描述】:
我在一个视图中显示了 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 张图片执行此操作时,它变得非常滞后且无响应。我尝试了几种不同的选项 - 减少采样频率、标准化采样输出等,但似乎没有任何区别。
我将如何优化它?
【问题讨论】:
-
最好的性能来自于将所有图像绘制成单个图像(或 OpenGL 纹理,或...)然后对其进行缩放。不过,这种情况可能并不多。
标签: ios objective-c ipad core-graphics