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

本文介绍了一个自定义UITableViewCell的方法,通过监听UITableView的滚动状态来优化内存使用。具体实现了在cell不可见时释放内存占用,在需要展示时加载网络图片,从而提高应用性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

允许转载,但记得标注


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,//当缩放结束后,并且缩放大小回到minimumZoomScalemaximumZoomScale之间后(我们也许会超出缩放范围),调用该方法。

    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;

        }

    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值