gpt4 book ai didi

ios - 使用 iOS 的 UITableView,如果单元格在图像下载到其中之前已经出队怎么办?

转载 作者:可可西里 更新时间:2023-11-01 05:57:04 25 4
gpt4 key购买 nike

不管用什么方法:iOS 5的[NSURLConnection sendAsynchronousRequest], SDWebImage, 或者ASIHTTPRequest, who if, while the image is正在下载,单元格已经出列(当 dequeueReusableCellWithIdentifier 被调用时)因此,新标签现在可能被标记为“Mary”,而 Peter 的图像正在下载,当下载完成时, Peter 的图像被填充到 Mary 的盒子中。

如果 Mary 的图像之后也被下载并且进入 Mary 的单元格并掩盖 Peter 的照片会更好,但是如果

1) Mary 的照片下载需要 1 或 2 秒(手机无线网络慢或延迟),或者网络在那个时候就卡住了?然后 Peter 的照片将在名字 Mary 旁边显示 1 或 2 秒或 20 秒,如果这次网络请求刚刚失败,甚至永远显示。

2) 如果 Mary 的数据有“不显示我的照片”标志或其他东西的隐私设置,那将是最糟糕的,然后 cellForRowAtIndexPath 可能实际上将虚拟图像(虚拟头像)设置到 Mary 的imageView,当下载 Peter 的图像时,进入 Mary 的单元格并且永远不会被替换。

这可以优雅地处理或解决吗?

顺便问一下,如果我们使用 SDWebImageASIHTTPRequest,问题会在那里还是已经由类处理了?

最佳答案

UITableViewCell method -prepareForReuse是取消未完成的网络请求、丢弃不需要的缓存以及诸如此类的好机会。

+[NSURLConnection sendAsynchronousRequest:queue:completionHandler:] 没有直接提供取消请求的方法,但是如果你在开始请求之前设置一些属性或 ivar,然后 checkin 完成处理程序以确保其当前值符合您的预期,您可以获得类似的效果。

关于ios - 使用 iOS 的 UITableView,如果单元格在图像下载到其中之前已经出队怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12273122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com