2

我注意到当一个表格视图单元格包含一个频繁更新的 UIProgressView 时,表格视图的滚动行为会受到很大影响。

更准确地说,由于进度视图的频繁更新,表视图的位置在表视图的“橡皮筋”动画制作动画时略有变化。当表格视图在顶部被拉动时,也会发生同样的事情。解释起来很棘手,但我希望你能明白这个要点。

当然,由于 UIProgressView 在幕后的工作方式,在后台更新进度视图是不可能的。这是一个已知问题吗?这个问题有解决方案吗?

4

2 回答 2

1

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

我提出的解决方案涉及创建一个对象、一个数组或字典,以跟踪表格视图中显示的每个项目的进度。管理表格视图的视图控制器不会在表格视图单元格的下载进度更改时更新每个单元格,而是定期更新可见的表格视图单元格,这可以根据您的需要频繁或不频繁。

我认为这就是苹果公司的做法。Podcasts 应用程序的下载视图中的进度视图,例如定期更新,并且进展不顺畅,这支持了我的猜测,即 Apple 使用计时器来更新表格视图。

于 2013-08-14T19:33:39.217 回答
0

这听起来不像正常的 UITableView 行为。当您说“由于 UIProgressView 在幕后的工作方式而无法在后台更新进度视图”时,我试图理解您的意思。如果您确保所有非 UI 操作都在后台完成,并且只在主线程上执行对 UIProgressView 的更新,那么这些伪影势必会消失。

于 2012-09-08T18:06:43.030 回答