Удалить CustomCell из таблицы - PullRequest
1 голос
/ 25 июля 2011

Я использую метод делегата NSURLConnection в UITableViewCell (CustomCell).Я показываю прогресс загрузки в ячейке.Когда загрузка завершается, вызывается connectionDidFinishLoading.Мне нужно удалить ячейку, в которой я показываю процесс загрузки после завершения загрузки.Это объясняется на изображении ниже.

enter image description here

Здесь загрузка файла в третьей ячейке завершается первой, а загрузка в двух других ячейках продолжается.Мне нужно удалить ячейку после завершения загрузки.В этом случае мне нужно удалить третью ячейку, в которой загрузка была завершена.
Итак, кто-нибудь помог мне удалить ячейку в connectionDidFinishLoading.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 25 июля 2011

Когда вы начинаете загрузку и обновляете пользовательскую ячейку, чтобы показать прогресс, сохраните 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];

Этот метод будет полезен только в том случае, если у вас есть только одна ячейка с прогрессом, которую вы хотите удалить, в противном случае вы можете хранить индексы в массиве и использовать их, когда вам понадобится эфир.

0 голосов
/ 25 июля 2011
while creating cell set the tag 

cell.tag=55;

in connectdidFinishing u can remove it by

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