TableView的加载和平滑度

时间:2017-08-14 22:01:51

标签: swift uitableview scroll

我有两个关于UITableView的问题:

  1. 当填充表格的数据正在加载时,如何在tableview中实施活动指标?

  2. 在滚动浏览已经加载到tableview中的数据时,标签和图像似乎是“跳跃”"因为它试图用信息填充单元格的标签和图像视图。 如何解决这个问题,因为我正在滚动标签,图像是"跳跃"当他们试图融入牢房时?

  3. 注意:要了解我要传达的内容,请考虑像Instagram这样的应用,以及当人们加载后如何显示活动指示器,以及当您向下滚动帖子时,所有单元格都不会跳跃。

2 个答案:

答案 0 :(得分:0)

我建议您使用像SDWebImage这样的东西来缓存图像。标签并不需要花费很多时间,但是图像可以。如果您不进行缓存,则每次滚动时都会反复加载图像。对于活动指示器,我建议您使用完成处理程序。

我的意思是,它会让您知道上传已完成,因此您可以在点击上传后立即启动活动指示器,并在到达完成处理程序时将其停止。

答案 1 :(得分:0)

  

在加载将填充表格的数据时,如何在表格视图中实现活动指示器?

您可以采取几种方法。您可以将带有活动指示器的视图放置在表的顶部(位于更高的层),以便即使表在滚动时也可以保持在原处。或者,您可以在表中填充占位符图像,直到获得实际的图像为止,此时您可以重新加载当前显示的所有单元格。或者,您可以完全隐藏表格,仅显示活动指示器,直到表格准备好为止。考虑一下您希望成为什么样的用户体验。

  

如何解决此问题,以便在滚动标签时图像在试图插入单元格时“不跳跃”?

首先,找出导致速度下降的原因。剖析可以为您提供帮助,但是简单的实验也可以。您是否正在从网络加载图像?如果是,如果图像已经存储在设备上,表格的性能会更好吗?将图像缓存在内存中是否有帮助?如何更改图像的大小?添加占位符图像而不是等待图像可用是否有帮助?一个很好的选择是,使用不大于所需图像的表并将其缓存在内存中的表将比通过网络同步加载大图像的表更平滑地滚动。我们不知道您的代码在做什么,因此您必须自己弄清楚代码,但一般来说,准则是每个单元格减少工作量