ios table 按行索引顺序查看单元格加载图像

ios table view cell load images in the order of row index

在 table 视图中配置单元格,我使用

-(void)setImageWithURLRequest:(NSURLRequest *)urlRequest placeholderImage:(UIImage *)

来自 AFNetworking 的方法从网络加载单元格图像(将其放在 cellForRowAtIndexPath 中)

用户在加载时不会卡住滚动。

----------

问题是每张图片的显示顺序都是随机的

因为该方法发送异步请求,

但我要一个接一个显示,

例如第 1 行单元格中的图像必须在第 0 行单元格中的图像显示后显示, 等等

好像加载可以是异步的(而且必须是)...

但显示应该是同步的(按顺序!)

有没有简单的方法来做到这一点?

提前致谢

将图像的名称存储在一个数组中,并在 UITableView 的 cellForItemAtIndexPath() 方法中访问它。通过这种方式,您将获得正确的图像顺序。你不应该因为图片的大小不同而一张一张地显示图片(例如 - 如果图片大小以兆字节为单位,加载会花费很多时间,那个时间可以用来加载另一张图片)

NSURL *photoURL = [NSURL URLWithString:[[array objectAtIndex:indexPath.row] valueForKey:@"Image"]];
[cell.imgMyPhoto setImageWithURL:photoURL placeholderImage:nil usingActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

如果你想一个接一个地展示它们,你可以使用这段代码将执行顺序设置为 FIFO,这将给你想要的输出。

[[[SDWebImageManager sharedManager] imageDownloader] setExecutionOrder:SDWebImageDownloaderFIFOExecutionOrder];

您可以使用 Utsav Parikh 上面提到的这种方法

NSURL *photoURL = [NSURL URLWithString:[[array objectAtIndex:indexPath.row] valueForKey:@"Image"]];
[cell.imgLogo setImageWithURL :photoURL placeholderImage : kPhotoPlaceholder usingActivityIndicatorStyle : UIActivityIndicatorViewStyleGray];

但不要忘记导入头文件

#import "UIImageView+UIActivityIndicatorForSDWebImage.h"