UITableView中的UIProgressView更新会导致滚动伪影

时间:2012-09-08 16:20:25

标签: ios uitableview uiprogressview

我注意到当表视图单元格包含经常更新的UIProgressView时,表格视图的滚动行为会受到显着影响。

更准确地说,由于进度视图的频繁更新,表视图的“橡皮筋”动画是动画的,因此表视图的位置会稍微改变。在顶部拉出表格视图时会发生同样的事情。解释起来很棘手,但我希望你能得到这个要点。

当然,由于UIProgressView在幕后工作的方式,因此无法在后台更新进度视图。这是一个知道问题吗?这个问题有解决方案吗?

2 个答案:

答案 0 :(得分:1)

我不确定如果没有解决方法可以解决这个问题。我找到的解决方案使用计时器和进度缓存。我的猜测是Apple采用了类似的方法。

我提出的解决方案涉及创建对象,数组或字典,以跟踪表视图中显示的每个项目的进度。管理表视图的视图控制器不是在表视图单元的下载进度发生变化时更新每个单元,而是以规则的时间间隔更新可见的表视图单元,这可能是您想要的频繁或罕见的。

我认为这就是Apple的做法。例如,Podcasts应用程序的下载视图中的进度视图会定期更新并且不能顺利进行,这支持了我猜测Apple使用计时器更新表视图。

答案 1 :(得分:0)

它听起来不像普通的UITableView行为。当你说"在后台更新进度视图时,我试图理解你的意思是不可能的,因为UIProgressView是如何在幕后工作的#34;。如果确保所有非UI操作都在后台完成,并且只对主线程上的UIProgressView执行更新,则这些文件必然会消失。