1

这个问题与这个问题非常相似,但那里没有答案,我无法对那个问题发表评论或做任何事情,并且情况略有不同。

我有自定义 tableViewCell,其中包含一些自定义视图。这个自定义视图包含 UIImageView 和 UIActivityIndi​​catorView ,并且它还附加了自定义加载器类。当这个视图第一次出现时,它的图像被隐藏并且 activityIndi​​cator 正在动画,然后启动加载过程(图像正在从某个 URL 加载),当图像成功加载时,它会出现在我的自定义视图中。一切都很完美,但是当我快速滚动 tableView 时,我有很多后台 NSURLConnections 徒劳无功。我还创建了一些方法来取消我的后台连接,但是当我需要它时我无法调用它们 - 当 tableViewCell 离开屏幕时不会调用任何方法。我真的需要一些活动,这样我就可以取消我的后台连接。有没有办法做到这一点?我真的不

4

1 回答 1

2

prepareForReuse:我的建议是在你的 UITableViewCell 的方法中取消你的网络请求。这很容易,也意味着如果单元格稍微滚动到屏幕外然后又重新打开,您将不会取消请求。(您也可以在tableView:cellForRowAtIndexPath:返回单元格以重复使用时执行此操作。)

您可能还想在快速滚动时首先避免启动这些负载;您可以停止加载scrollViewWillBeginDragging:并等待,例如, scrollViewDidEndDragging:willDecelerate:从表格视图回调,然后再开始对可见单元格的实际 URL 请求。

于 2013-03-11T11:37:38.107 回答