使用iOS的UITableView,如果在将图像下载到单元格之前单元格已经出列,该怎么办?

使用iOS的UITableView,如果在将图像下载到单元格之前单元格已经出列,该怎么办?,第1张

概述无论使用何种方法:iOS 5的[NSURLConnection sendAsynchronousRequest],SDWeb Image或ASIHTTPRequest,如果在下载图像时,单元格已经出列(当调用dequeueReusableCellWithIdentifier时),因此,现在可以标记新标签作为“玛丽”,正在下载彼得的图像,当下载完成时,彼得的图像被填充到玛丽的盒子里. 如果玛丽的形象 无论使用何种方法:iOS 5的[NSURLConnection sendAsynchronousRequest],SDWeb Image或ASIhttpRequest,如果在下载图像时,单元格已经出列(当调用dequeueReusableCellWithIDentifIEr时),因此,现在可以标记新标签作为“玛丽”,正在下载彼得的图像,当下载完成时,彼得的图像被填充到玛丽的盒子里.

如果玛丽的形象也被随后下载并将进入玛丽的牢房并掩盖彼得的照片会更好,但如果

1)玛丽的照片需要1或2秒才能下载(手机无线网络速度慢或延迟),或网络只是在那时窒息?然后,彼得的照片将在玛丽名称旁边显示1或2秒或20秒,如果此次网络请求失败,则甚至永远显示.

2)如果Mary的数据隐私设置为“不显示我的照片”标志或其他内容,那么将是最糟糕的,那么cellForRowAtIndexPath可能实际上将虚拟图像(虚拟化身)设置为Mary的imageVIEw,当下载Peter的图像时,去进入玛丽的牢房,永远不会被取代.

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

顺便说一句,如果我们使用SDWebImage或ASIhttpRequest,那么问题是否已经存在或将由该类处理?

解决方法 UITableViewCell method -prepareForReuse是一个很好的机会,可以取消优秀的网络请求,丢弃不需要的缓存,以及那种东西.

 [NSURLConnection sendAsynchronousRequest:queue:completionHandler:]不直接提供取消请求的方法,但如果在开始请求之前设置了某个属性或ivar,然后检查完​​成处理程序以确保其当前值匹配你所期望的,你可以得到类似的效果.

总结

以上是内存溢出为你收集整理的使用iOS的UITableView,如果在将图像下载到单元格之前单元格已经出列,该怎么办?全部内容,希望文章能够帮你解决使用iOS的UITableView,如果在将图像下载到单元格之前单元格已经出列,该怎么办?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1035786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存