tableViewCell中的行在滚动时更改其位置

时间:2015-10-24 19:17:31

标签: ios swift uitableview tableview tableviewcell

我的tableView中有myCustomCell

此单元格包含按钮进度视图。通过单击按钮文件下载开始和进度视图显示下载进度。除了我在任何单元格中开始下载后滚动tableView的那一刻,一切都很棒 - 进度视图显示在其他单元格中,而不是我先点击的那个单元格。例如,如果我单击第一个单元格并向下滚动一点 - 滚动停止后第一个单元格将显示下载文件的进度。如果我开始下载2次或更多次,则他们都会改变他们的位置。

以下是显示问题的简短视频:https://youtu.be/BTtU94ODbBI

cell可以在tableView中随机多次更改位置,并且progress view只能移动到另一个单元格

我该如何解决?

1 个答案:

答案 0 :(得分:2)

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath tableview委托给您(视图控制器),为tableview提供一个单元格来呈现。

当该单元格离开屏幕时,在这种方法中回收并重复使用是公平的游戏。  你的问题源于回收的细胞仍然保持其先前的状态。

要停止此行为,每次在此功能中创建(或获取)单元格时,隐藏/重置任何进度更新。 cellForRowAtIndexPath每次询问一个时都会得到一个干净的单元格,你应该在呈现之前配置它。

在您的情况下,myCustomCell可以使用方法- (void) clean;将progressView设置为隐藏,将标题设置为@""等。创建cell后立即调用此方法你很高兴