我正在处理的应用程序要求我将图像绘制到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);
}
此处还有其他绘图,但我只是想确保图像绘制代码不会导致问题,并且我没有忽略调用重要方法或实现错误。
答案 0 :(得分:3)
我发现由于使用了
,这种方法是次优的[UIImage imageNamed:@"someimage.png"]
此方法将图像加载到内存中,然后将其缓存以供以后使用。因为我使用的图像很大,并且有几个,所以使用这种方法会导致过多的内存使用。
我写了一篇更详细的short post。