这是将大图像绘制到UIView的最佳方式吗?

时间:2010-09-03 08:27:55

标签: iphone ios quartz-2d

我正在处理的应用程序要求我将图像绘制到UIView。这些图像很大(有些是1024x768),我想确保我的绘图代码不是次优的。我的drawRect中的UIView方法如下所示:

- (void)drawRect:(CGRect)rect {
  CGContextRef context = UIGraphicsGetCurrentContext();
  CGContextClearRect(context, rect);

  CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, 550);
  CGContextConcatCTM(context, flipVertical);
  CGImageRef shadowImage = [[UIImage imageNamed:@"someimage.png"] CGImage];
  CGContextDrawImage(context, CGRectMake(162, -174, 700, 700), shadowImage);
  CGContextConcatCTM(context, flipVertical);
}

此处还有其他绘图,但我只是想确保图像绘制代码不会导致问题,并且我没有忽略调用重要方法或实现错误。

1 个答案:

答案 0 :(得分:3)

我发现由于使用了

,这种方法是次优的
[UIImage imageNamed:@"someimage.png"]

此方法将图像加载到内存中,然后将其缓存以供以后使用。因为我使用的图像很大,并且有几个,所以使用这种方法会导致过多的内存使用。

我写了一篇更详细的short post