因此,需要找到个方法去延迟加载(lazily load),
9160_ScrollerDemo.zip
,在测试时发现图片都加载到了内存中,导致内存会越来越大,因此会考虑到每次只加载三张,即当前这一张,前一张和后一张!然后释放掉其他的内存。具体的代码如下:
第一步:将要加载的内容先置为空
第二步:设置加载图片的方法
第三步: 然后在滚动的过程中,scrollView的这个delegate方法被调用,我们在这个方法去设定加载的内容
本来到这里应该解决了内存不够的问题,经过测试,后来发现程序仍然有闪退的现象发生,接着用打印内存的方式查看程序的内存情况,发现滑动到某张图片的时候,内存突然暴涨,从30多一下子暴涨130多,100多M的内存不知道被谁吃掉了,后来经过各种原因的排查,发现是用 imageWithContentsOfFile的方法从documents文件夹中加载图片的时候,内存会大量增加,解决的办法是:
为了防止爆内存,UIImageView在release之前,还是要把image置nil,
到这里,这个程序才会以稳定的内存运行,不会出现闪退的现象。
结果,在用uislider滚动的时候,如果是加载当前三张的话,因为uislider不是一次滚动一张,会出现露出白色底色的现象,最后决定在 - (void)didReceiveMemoryWarning 里面释放掉不需要的内存。
![](http://bbs.51app.com/static/image/filetype/zip.gif)
第一步:将要加载的内容先置为空
第二步:设置加载图片的方法
第三步: 然后在滚动的过程中,scrollView的这个delegate方法被调用,我们在这个方法去设定加载的内容
本来到这里应该解决了内存不够的问题,经过测试,后来发现程序仍然有闪退的现象发生,接着用打印内存的方式查看程序的内存情况,发现滑动到某张图片的时候,内存突然暴涨,从30多一下子暴涨130多,100多M的内存不知道被谁吃掉了,后来经过各种原因的排查,发现是用 imageWithContentsOfFile的方法从documents文件夹中加载图片的时候,内存会大量增加,解决的办法是:
为了防止爆内存,UIImageView在release之前,还是要把image置nil,
到这里,这个程序才会以稳定的内存运行,不会出现闪退的现象。
结果,在用uislider滚动的时候,如果是加载当前三张的话,因为uislider不是一次滚动一张,会出现露出白色底色的现象,最后决定在 - (void)didReceiveMemoryWarning 里面释放掉不需要的内存。