我在我的应用程序中有一个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
}
}
请帮忙。
答案 0 :(得分:1)
当Cell进入OnScreen时,将调用cellForRowAtIndexPath。
在那个方法中,进行检查
if(download completed) remove progress bar and add button.