2011-07-25 12 views
1

UITableViewCell(CustomCell)でNSURLConnectionのデリゲートメソッドを使用しています。私はセル内でダウンロードの進行状況を示しています。ダウンロードが完了すると、connectionDidFinishLoadingが呼び出されます。ダウンロードが完了したら、ダウンロードの進行状況を示すセルを削除する必要があります。それは以下のイメージで説明されています。ここで テーブルからCustomCellを削除する

enter image description here

第三のセル内のファイルのダウンロード

が最初に完了し、他の二つのセル内のダウンロードは進行中です。ダウンロードが完了したら、セルを削除する必要があります。この場合、ダウンロードが完了した3番目のセルを削除する必要があります。
だから、誰かがconnectionDidFinishLoadingでセルを削除するのを助けます。前もって感謝します。

答えて

0
while creating cell set the tag 

cell.tag=55; 

in connectdidFinishing u can remove it by 

[[self.view viewWithTag:55] removeFromSuperview]; 
0

あなたがダウンロードを開始し、進行状況を表示するためのカスタムセルを更新すると、ヘッダーに

を委任どこかでindexPath保存:インプリメンテーションで

NSIndexPath *targetCellIP; 
@property (nonatomic, retain)NSIndexPath *targetCellIP; 

を:

@synthesize targetCellIP; 

// Somewhere where you update cell layout to show progress save it's indexPath 
[self setTargetCellIP:....]; 

// After download is completed, remove cell from data model 
[[dataModel objectAtIndex:[targetCellIP section]] 
             removeObjectAtIndex:[targetCellIP row]]; 

// Remove cell from table 
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:targetCellIP] 
       withRowAnimation:UITableViewRowAnimationMiddle]; 

このメソッドは、削除する進捗状況のセルが1つしかない場合にのみ有効です。他のケースでは、配列にインデックスを格納し、必要なときにそれらを使用することができます。

+0

、または配列に保存してから配列をループすることができます。 1行以上で完璧に動作します。 – Simon