- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我将表与 dequeueReusableCellWithIdentifier
和 afnetworking+uiimageview
一起使用。我的一些细胞有图像,有些没有。如果我在加载图像之前滚动表格,成功 block 会将图像放入重复使用的错误单元格中。例如图像在单元格 #2 中,但在滚动后它出现在单元格 #8 中,因为当时 #8 位于第二个位置。是否可以将 setImageWithURLRequest
与 dequeueReusableCellWithIdentifier
一起使用?
我的代码:
let cell = tableView.dequeueReusableCellWithIdentifier("simpleCell", forIndexPath: indexPath) as UITableViewCell!
cell.textLabel.text = fields[indexPath.row]["name"] as String
cell.imageView.image = nil
if let image = fields[indexPath.row]["image"] as? String {
if (image != "") {
let image_url = NSURL(string: image)
let url_request = NSURLRequest(URL: image_url)
let placeholder = UIImage(named: "no_photo")
cell.imageView.setImageWithURLRequest(url_request, placeholderImage: placeholder, success: { [weak cell] (request:NSURLRequest!,response:NSHTTPURLResponse!, image:UIImage!) -> Void in
if let cell_for_image = cell {
cell_for_image.imageView.image = image
cell_for_image.setNeedsLayout()
}
}, failure: { [weak cell]
(request:NSURLRequest!,response:NSHTTPURLResponse!, error:NSError!) -> Void in
if let cell_for_image = cell {
cell_for_image.imageView.image = nil
cell_for_image.setNeedsLayout()
}
})
}
}
return cell
抱歉,如果我的问题与另一个问题重复。我发现了很多类似的问题,但我还没有找到解决方案。我尝试添加重新加载
tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)
进入我的成功 block ,但它没有帮助。
更新:我还注意到,在我所有的单元格都有图像的情况下,我没有这个问题。如果我理解正确,原因是:当尝试请求新图像时,AFNetworking 正在中止先前对同一单元格的请求。但如果我在单元格中没有图像,它就不会中止。如何手动完成?
最佳答案
当表格 View 重用单元格时,图像下载仍在后台处理。当它完成时,cell
指向一个具有不同内容的重复使用的单元格。
你有两个选择:
cell.imageView.image = nil
之后的 ImageView 上调用 cancelImageRequestOperation
cell
;而是使用您的数据模型从 TableView 中请求正确的单元格。关于ios - AFNetworking 的 setImageWithURLRequest 在滚动后将图像设置在错误的单元格中(iOS、Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25569971/
我正在使用此函数循环下载一些图像 for(int i=0;i
我在表格 View 中有一个单元格(行)有一个图像,每当我需要更改我调用的图像时: -(void)loadThumbnailWithPath:(NSString *)path { NSLog(
如何在图片下载过程中显示进度条? 我的代码在这里: [picView setImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWi
我尝试在 tableViewCell 上使用 AFNetworking 的 setImageWithURLRequest 在 ImageView 上设置图像。如果我不在方法中包含 success 和
我想在我的一个应用程序中设置表格 View 单元格图像。我使用 AFNetworking (1.2.1) 并使用 setImageWithURLRequest 实现。 我设置图像的代码如下所示:
我正在使用 AFNetworking 的 UIImageView+AFNetworking.h 将在线图像异步加载到 UIImageView 上。 当我使用 setImageWithURLReques
我正在使用 setImageWithURLRequest:placeholderImage:success:failure 从 URL 下载图像,图像下载工作正常。我遇到的问题是,当我将下载的图像设置
我在当前的一个项目中下载图像时使用了这段代码,但它不适用于 AFNetworking 2.0。我尝试通过 AFImageResponseSerializer,但找不到要使用的正确代码。 [cell.p
我将 RestKit (0.20.0) 用于我的 Rest Api 实现 - 所有 GET、POST 等。GET 返回一些图像的 url。我正在使用 UIImageView+AFNetworking
我正在使用 AFNetworking 的 UIImageView 类别,并且在我的响应代码状态中不断收到 0 响应代码。知道这是为什么吗?这是我的做法: [self.newsPicture_ setI
我的 tableView:cellForRowAtIndexPath 方法中使用了以下代码。我使用 AFNetworking 的 setImageWithURLRequest 来显示单元格的图像。但是
在使用 UIImageView+AFNetworking 时,有没有人有一个很好的解决方案来获取下载进度?类别和 AFNetworking 3.0 . 这category ,我在 3.0 之前的版本中
我正在尝试使用 AFNetworking 2.0 从 url 异步获取图像 我的问题是既没有调用成功也没有调用失败 我已经在浏览器中检查了我的 URL,所以问题不在这里 UIImageView *im
我已经在 Xcode 5 上安装了 AFNetworking 2.1.0 和 CocoaPods。 //ViewController.h #import #import 在 UIImageview
我将表与 dequeueReusableCellWithIdentifier 和 afnetworking+uiimageview 一起使用。我的一些细胞有图像,有些没有。如果我在加载图像之前滚动表格
我正在尝试在 Collection View 中显示来自 url 的图像。到目前为止,我一直在为此使用 AFNetworking,但现在我正在转向 Alamofire。我找不到像使用“setImage
我是一名优秀的程序员,十分优秀!