在UIScrollView中使用imageWithData的毛刺黑色补丁

时间:2011-03-02 23:10:47

标签: iphone ipad uiscrollview uiimage nsdata

在一个沉重的应用程序中,我一直很难处理内存消耗。我已经摆脱了几乎所有的内存泄漏。一个部分具有相当大的地图的可缩放UIScrollView:2437x1536。它在数组中的png之间进行选择。在我使用+imageNamed:之前,我听说这可能会使应用程序有时运行不佳,因为它可能会将图像保留在缓存中,即使您不在使用它的视图中也会占用更多内存。现在我正在使用+imageWithData:。应用程序尚未崩溃,但在启动地图部分的第4或第5次时,只显示部分图像,并且有闪烁的黑色区域。以前没有使用imageNamed。有时它完全消失,只是一个矩形的上角,我回到另一个视图,一个图像也闪烁在那里。

这是我要显示地图图像的内容。它位于视图的-initWithFrame:方法中:

mapList = [[NSMutableArray alloc] init];
[mapList addObject:@"Pacific_Map"];
[mapList addObject:@"Atlantic_Map"];

NSString *mapFileLocation = [[NSBundle mainBundle] pathForResource:[map_List objectAtIndex:mapNum] ofType:@"png"];

NSData *mapIMGData = [NSData dataWithContentsOfFile:mapFileLocation];
mapImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData:mapIMGData]]; 

任何明显会导致这种影响的东西?

1 个答案:

答案 0 :(得分:0)

抱歉,我为外部屏幕分配了两次图像。这最终还是会让它崩溃。我以为我不会用这种技术来缓存图像。