0

我使用滚动视图来显示我的照片,我想知道如何实现当我滚动到照片然后加载它以节省内存的机制。谁能给我一些建议或相关材料?谢谢!

4

2 回答 2

2

你可以自己做,使用

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

不要忘记定义你的滚动视图框架,这样分页就不会乱了

之后,如果滚动视图达到某个偏移量,则加载图像

代码看起来有点像这样:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.y > 500) //for example if you choose to put your image in y:500
    {
        //load your images here you could load it in the main thread or use dispatch queue if you load it from web
    }
}

通过这样做,当您向下滚动滚动视图 500 点时,它将加载您想要的图像。

这只是基本逻辑,你可以从这里开始做很多事情。我想说不要过分依赖开源 git,试着让事情按照你自己的方式工作。如果到那时你仍然不知道怎么做,那就去试试 git。但我建议学习代码是如何工作的,而不是仅仅为了它的作用而简单地使用它:3

编辑:您可能希望设置一种方法以在您滚动出图像等级以节省内存后从超级视图中删除图像,并设置一些布尔标志,以便图像不会加载两次或更多

于 2012-05-09T07:27:39.627 回答
1

你可以使用SDWebImage ,你不必担心缓存等

Web Image 这个库为 UIImageVIew 提供了一个类别,支持来自网络的远程图像。

它提供:

一个向 Cocoa Touch 框架添加 Web 图像和缓存管理的 UIImageView 类别 异步图像下载器 具有自动缓存过期处理的异步内存 + 磁盘图像缓存 保证不会多次下载相同的 URL 保证不会出现虚假 URL t 一次又一次地重试表演!

于 2012-05-09T04:34:25.180 回答