0

当我滚动表格视图时,我想在不可见的表格视图单元格中删除下载的图像。

所以我设置了一个标签

- (void)appImageDidLoad:(NSIndexPath *)indexPath
{
 int row=(int)indexPath
 UITableViewCell *cell;
 cell=[self.gamesTableView cellForRowAtIndexPath:indexPath];

 OneItemCell *cell1=(OneItemCell*) cell;   //custom cell

 cell1.imageview.tag= row+100;

 }

I set remove downloaded image when selected row is last row cell(=add cell).

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{  
     if(row==nArrayCount)
   {

  if(row>19) 
  {

    for(int i=1;i<row-8;i++)
    {


        [[self.gamesTableView viewWithTag:i+100] removeFromSuperview]; 

    }
 }

}

但它不工作。因为 [[self.gamesTableView viewWithTag:i+100] 为 NULL。

另一种方法是我通过 NSMutableDictionary(=imageRemoveInProgress) 为单元格的 imageView 设置一个键

 - (void)appImageDidLoad:(NSIndexPath *)indexPath
   {                   .
                       .

        [imageRemoveInProgress setObject:cell1.imageView forKey:[NSNumber numberWithInt:row+100]];

   }



   - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {                     .
                       .
    [[imageRemoveInProgress objectForKey:[NSNumber numberWithInt:row+100]] removeFromSuperview];

 }

它也不起作用。因为[[imageRemoveInProgress objectForKey:[NSNumber numberWithInt:row+100]] 也是NULL。

[[imageRemoveInProgress objectForKey:[NSNumber numberWithInt:row+100]] 在 appImageDidLoad 中有值。

但在 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

它有 NULL。

为什么标记和设置键值单元格的 imageView 变为 NULL?

如何删除 tableViewcell 的 imageview?

4

1 回答 1

0

我不知道确切的方法,但我可以提供一个提示

你可以使用这样的东西

NSArray *visiblePaths = [self.tableView indexPathsForVisibleRows];

visiblePaths 是当前可见单元格的 indexPaths 数组,您可以检查要删除图像的单元格是否在此数组中。

于 2012-06-20T10:16:59.020 回答