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 に答える