我正在使用 UIImageView+AFNetworking:setImageWithURLRequest
将图像加载到表格 View 单元格中。它运行良好,我尝试使用 AFNetworkActivityIndicatorManager
如下例所示,在加载图像时显示事件指示器。
[[AFNetworkActivityIndicatorManager sharedManager] incrementActivityCount];
[imageView setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:placeholder]
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
[[AFNetworkActivityIndicatorManager sharedManager] decrementActivityCount];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
[[AFNetworkActivityIndicatorManager sharedManager] decrementActivityCount];
}
];
我遇到的问题是当快速滚动 TableView 时 AFNetworking 取消了某些请求并且 AFNetworkActivityIndicatorManager
永远不会减少。取消请求确实让事情变快了,而且似乎是设计使然:
"As table view cells are recycled, for instance, setting a new image URL will automatically cancel the previous request." https://github.com/AFNetworking/AFNetworking/wiki/Introduction-to-AFNetworking
有没有一种方法可以检测取消以便我可以递减 AFNetworkActivityIndicatorManager
或者是否有更好的方法来确保请求和事件指示器保持同步?
谢谢!
最佳答案
你不需要这样做,你需要做的就是调用:
AFNetworkActivityIndicatorManager.sharedManager.enabled = YES;
在您的 AppDelegate application:didFinishLaunchingWithOptions: 中,然后 AFNetworking 负责在网络连接开始和停止时隐藏和显示指示器。
关于ios - AFNetworkActivityIndicatorManager 不会递减,因为表格单元格回收取消了图像请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12132814/