如何删除不可见的表格视图单元格下载的图像。在ios

时间:2012-06-20 09:39:02

标签: iphone ios tags tableviewcell

当我滚动tableview时,我想删除隐藏的tableview单元格中的下载图像。

所以我设置了一个标签

- (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;

 }

当所选行是最后一行单元格(=添加单元格)时,我设置删除下载的图像。

- (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。

为什么taged和seted键值单元格的imageView变为NULL?

如何删除tableViewcell的imageview?

1 个答案:

答案 0 :(得分:0)

我不知道确切的方法,但我可以提供一个提示来做到这一点

你可以使用这样的东西

NSArray * visiblePaths = [self.tableView indexPathsForVisibleRows];

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