UIScrollview的一些用法,解決裡面ImageView只新增不釋放的問題

安迪潘發表於2011-10-17

定義一個UIScrollview後往裡面新增多張圖片使其滑動顯示,可以這麼寫:

IBOutlet UIScrollview *parkScrollView;


parkScrollView.contentSize=CGSizeMake(1024*3, 768);
    for (int i=0; i<4; i++) {
        NSString *imgName=[[NSString alloc]initWithFormat:@"m_side0_%d",i];
        UIImage *img1=[[UIImage alloc]initWithContentsOfFile:[[NSBundle mainBundle]pathForResource:imgName ofType:@"png"]];
        UIImageView *imgView1=[[UIImageView  alloc]initWithFrame:CGRectMake(1024*i, 0, 1024, 768)];
        [imgView1 setImage:img1];
        [parkScrollView addSubview:imgView1];
        [imgName release];
        [img1 release];
        [imgView1 release];
    }

這麼寫確實達到效果了,但是,每當執行這段程式碼時,scrollview裡面就會add幾個ImageView,它是一直佔用著系統記憶體.

有一個解決辦法是,得到裡面的ImageView,分別把他們remove掉,再執行新增操作.


int l=[parkScrollView.subviews count];
    UIView *subview;
    while (l>0) {
        subview=[parkScrollView.subviews  objectAtIndex:0];
        [subview removeFromSuperview];
        l=[parkScrollView.subviews count];
    }


相關文章