延迟加载(table of UICollectionView)时,
为了得到正确的结果,当用户在集合上快速滚动时,不应该开始下载。
那么,想象一个垂直滚动,有200个面板,每个面板都有一个图像;每次在屏幕上看到四到五个。
当它第一次加载时,前4个可见图像应该开始加载。如果向下滚动一点,新的可见图像应该开始加载。
但是,如果用户非常快速地向下滚动到(比如说)位置100,然后定位显示项目100-104的视图…理想情况下,你不应该开始加载那些用户很快"浏览"过的图片(比如从4到99),你应该只在用户停止快速滚动的时候才开始下载,显然有些图片正在停止或变慢。
所以,这是一个标准的事情,你必须做任何高质量的延迟加载滚动。你不能在用户浏览的时候开始加载。
我的问题很简单:SDWebImage支持这个概念吗?如果没有,有没有其他流行的现成方法?欢呼声
它不支持它,因为它通常是图像视图上的一个类别,但你自己添加这个功能会很直接。
假设您在cellForItem...
中启动图像加载,您将在块之后添加一个调度,只有当相同的单元在0.2秒后仍然具有相同的索引路径时才会启动加载。
在做任何事情之前,我会检查你是否有一个可测量的问题,尽管- AFAIK SDWebImage(绝对是AFNetworking图像视图类别)将在收到新的URL请求时取消任何未完成的URL请求,所以你可能正在进行不必要的优化。