您的位置:首页 > 其它

CommonTableCollectView:图片懒加载,不使用的image大量释放

2015-12-14 18:47 555 查看
允许转载,但记得标注

demo:点击打开链接

效果如图:



继承CommonTableCollectView里面的CommonCell,实现以下方法:

//检测到tableView的滚动状态,在此可以进行一些回收内存的操作,如离开当前画面的cell内存回收

-(void)commonTableView:(CommonTableView *)tableView scrollType:(ScrollType)scrollType;

ScrollType是一个枚举:

#pragma mark --- tableView的滚动状态 ---

typedef NS_ENUM(NSInteger, ScrollType) {

    scrollViewDidScroll,//正在滚动

    scrollViewDidZoom,//当scrollView缩放时

    scrollViewWillBeginDragging,//当开始滚动视图时,执行该方法。一次有效滑动(开始滑动,滑动一小段距离,只要手指不松开,只算一次滑动),只执行一次。

    scrollViewWillEndDragging,//滑动scrollView,并且手指离开时执行。一次有效滑动,只执行一次。当pagingEnabled属性为YES时,不调用,该方法

    scrollViewDidEndDragging,//滑动视图,当手指离开屏幕那一霎那,调用该方法。一次有效滑动,只执行一次。decelerate,指代,当我们手指离开那一瞬后,视图是否还将继续向前滚动(一段距离),经过测试,decelerate=YES

    scrollViewWillBeginDecelerating,//滑动减速时调用该方法

    scrollViewDidEndDecelerating,//滚动视图减速完成,滚动将停止时,调用该方法。一次有效滑动,只执行一次。

    

    scrollViewDidEndScrollingAnimation,//当滚动视图动画完成后,调用该方法,如果没有动画,那么该方法将不被调用

    scrollViewWillBeginZooming,

    scrollViewDidEndZooming,//当缩放结束后,并且缩放大小回到minimumZoomScale与maximumZoomScale之间后(我们也许会超出缩放范围),调用该方法。

    scrollViewShouldScrollToTop,

    scrollViewDidScrollToTop

};

//关键代码

-(void)commonTableView:(CommonTableView *)tableView scrollType:(ScrollType)scrollType{

    [super commonTableView:tableView scrollType:scrollType];

//滚动的状态,滚动在减速,滚动已经停止,滚动的手指离开了屏幕

    if (scrollType==scrollViewWillBeginDecelerating ||

        scrollType == scrollViewDidEndDecelerating  ||

        scrollType == scrollViewDidEndDragging

        ) {

        

           //加载网络图片

            [self.imageView setImageWithURL:[NSURL URLWithString:absoluteString] placeholderImage:nil];

    }else{

//tableView在滚动的时候,并且cell在不显示的时候,释放内存

        if (![self isShow]) {

            self.imageView.image = nil;

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: