iPhone石英图像绘制性能。

时间:2011-07-28 22:05:15

标签: iphone uiimage core-graphics quartz-graphics

目前我有一个用UIViews填充的水平UIScrollView。移出屏幕并重复使用时,视图会出列。每个UIView都是子类,使用drawInRect绘制图像,当视图进入屏幕时调用[someView setNeedsDisplay]。

[_image drawInRect:imageRect];

我的渐变,文本,形状等都可以平滑加载,但是一旦我绘制图像,我就会受到明显的性能影响。图像的大小似乎并不重要,因为滚动视图总是滞后。 (我在使用UIImageView时也得到了相同的结果。)我的所有图像都是预先加载的。

有没有更好的方法来绘制不会导致性能不佳的图像?

1 个答案:

答案 0 :(得分:2)

如果您只是在绘制图片,则可以考虑将CALayerCGImageRef内容一起使用 - drawRect:覆盖将比CALayer合成慢。需要注意的另一件事是需要频繁重新组合的alpha混合图像,或者未与整数像素对齐的图像。 Improving Image Drawing Performance on iOS技术说明是开始这类事情的好地方。一旦掌握了基础知识,乐器中的核心动画乐器将对您有很大的帮助 - 它会注意混合,复制的图像,未对齐的图像和屏幕更新。