2

我的应用程序中有一个 UITableView 并且我已经对其进行了自定义。每个单元格包含一个 Imageview 和一个按钮。当我单击按钮时,将开始下载过程,并且该按钮将替换为 UIProgressView。一旦下载完成,进度视图将被删除,并且按钮将再次显示不同的状态。对于屏幕中可见的单元格,它工作正常。但是一旦下载完成,我就无法更新屏幕外的单元格。即使单元格不在屏幕上,进度视图更新也能正常工作。但是在尝试用按钮替换进度视图时遇到问题。

这是我的一些代码示例:

用于更新,一旦下载完成,

//Creating custom cell with the Id value and upadting the cell
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:btnId inSection:0]; //btnId is the id of the button clicked
UIMenuItemCell *cell = [(UIMenuItemCell *)[self.menuItemsPanel cellForRowAtIndexPath:indexPath] retain];

//hiding the progressview
for (UIProgressView *currentProgress in cell.contentView.subviews) {
    if ([currentProgress isKindOfClass:[UIProgressView class]]) {
        currentProgress.hidden = YES;
        [cell.contentView reloadInputViews];
    }
}
for (UIButton *currentBtn in cell.contentView.subviews) {
    if ([currentBtn isKindOfClass:[UIButton class]]) {
        if (currentBtn) {
        //updating the button status here, once the download is complete
   }
}

请帮忙。

4

1 回答 1

1

当 Cell 出现 OnScreen 时,将调用 cellForRowAtIndexPath。

在那个方法中,检查

if(download completed) remove progress bar and add button.
于 2012-07-10T07:45:51.460 回答