我使用scrollview作为每个260X120大小的图像的父视图。如果我在scrollview上添加甚至只有4-5个图像,则内存使用量上升到3 MB到4 MB并最终导致应用程序崩溃。我正在放置从相机拍摄的这些图像,将它们调整为上述书写尺寸。 有没有办法管理这个记忆。我也在仪器上运行应用程序,但没有找到任何泄漏!
以下是我正在使用的代码:
-(void)displayLocalBadgesinScrollView:(UIScrollView *)scrollerView badgeArray:(NSMutableArray *)badgearray
{
//int count=0;
for(int i=countArrLast;i<[badgearray count];i++)
{
if(count==2)
{
xGap=1.0;
yGap=yGap+90;
count=0;
}
UIButton *bdgButton=[UIButton buttonWithType:UIButtonTypeCustom];
bdgButton.tag=i;
bdgButton.frame=CGRectMake(xGap,yGap, 130.0, 70.0);
BadgeDetail *object=[badgearray objectAtIndex:i];
bdgButton.tag=[object.bdgID intValue];
if([object badgeImage]!=nil)
{
[bdgButton addTarget:self action:@selector(markBadgeNew:) forControlEvents:UIControlEventTouchUpInside];
[bdgButton setBackgroundImage:[UIImage imageWithData:[Base64Coder decodeData:[object badgeImage]]] forState:UIControlStateNormal];
}
[scrollerView addSubview:bdgButton];
我在视图中调用此方法将在我从另一个屏幕仅移回时出现...而且badgearray中填充了BadgeDetail类型的对象。您可以看到我如何从对象访问图像对象并设置为背景图像按钮。