Swift 使用AlamofireImage取消图像下载

Swift 使用AlamofireImage取消图像下载,swift,alamofire,alamofireimage,Swift,Alamofire,Alamofireimage,我们正在努力取消使用集合视图单元格时已发送的请求。。(我不是说我们想取消请求的情况,因为我们已经发送了相同的请求)。。。我想我们需要使用以下方法:CancelRequestForRequestReceive。。问题是不清楚如何获取此RequestReceipt 例如: 我们有一个具有不同图像的集合视图(每个图像具有不同的url)。。如果我将快速前后滚动,方法af_cancelImageRequest将完成此任务,并且不会为同一url创建两个活动请求。。超级的!,问题是当我们尝试只滚动到一个方向时

我们正在努力取消使用集合视图单元格时已发送的请求。。(我不是说我们想取消请求的情况,因为我们已经发送了相同的请求)。。。我想我们需要使用以下方法:CancelRequestForRequestReceive。。问题是不清楚如何获取此RequestReceipt

例如:

我们有一个具有不同图像的集合视图(每个图像具有不同的url)。。如果我将快速前后滚动,方法af_cancelImageRequest将完成此任务,并且不会为同一url创建两个活动请求。。超级的!,问题是当我们尝试只滚动到一个方向时,我们有1000个图像。。基本上,我们希望能够在图像返回之前取消刚刚发送的请求,这意味着我们没有图像,我们也没有AlamofireImage继续该请求。。。在手机消失后(由于互联网和fest滚动速度慢导致)。。 所以,如果我做对了,我们可以使用cancelRequestForRequestReceipt。。。问题是我们找不到如何获取此RequestReceipt

顺便说一句:我看到了AlamofireImage演示应用程序的示例代码

override func prepareForReuse() {
    super.prepareForReuse()

    imageView.af_cancelImageRequest()
    imageView.layer.removeAllAnimations()
    imageView.image = nil
}
正如我所说,只有当请求已经在操作队列中时,此代码才会取消图像请求


帮助:)

我认为您误解了AlamofireImage在本例中的作用,但首先让我们了解该方法的作用

每次单元格要出列时,都会调用此方法,这意味着,例如,如果如您所说,向前和向后快速滚动,则会调用此方法;如果使用n个图像在一个方向快速滚动,则每次单元格消失时都会调用此方法

当您在
UIImageView
上调用该方法,并且在
UITableViewCell
中存在一个引用时,您不需要
requestreceive
,因为请求将被取消

在这种情况下,当你快速前进和后退时,正确的处理方式不是在油门阻止这种行为后取消它

AlamofireImage这是一个非常棒的库,但我认为使用它可以获得更多好处,它可以处理快进和快退的情况下的抖动,当然还有另一种情况,即单元格排队,请求未完成

尽管如此,这些库为您处理所有的艰苦工作,您不需要重新发明轮子。我的建议是,您了解幕后发生的事情,以及如果这些库还不存在,您可以如何做到这一点


我希望这对你有帮助。

谢谢@Victor Sigler!我会查一下翠鸟:)@Victor Sigler,你能指出翠鸟中负责“节流”的文档(或更好的源文件)吗?