2012-06-20 31 views
0

当我滚动tableview时,我想删除不可见的tableview单元格中下载的图像。如何删除不可见的tableview单元格的下载图像。在ios

所以我设置一个标签

- (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关键细胞的ImageView的(= imageRemoveInProgress)

- (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:行+ 100 appImageDidLoad]具有值。

但在 - (空)的tableView:(UITableView的*)的tableView didSelectRowAtIndexPath方法:(NSIndexPath *)indexPath

它有NULL。

为什么功能标签和seted键值细胞的ImageView的成为空?

如何删除tableViewcell的imageview?

回答

0

我不知道确切的方式,但是我可以提供一个提示去做

你可以使用这样的事情

的NSArray * visiblePaths = [self.tableView indexPathsForVisibleRows]

visiblePaths是当前可见的细胞indexPaths阵列,您可以检查您要删除的图像细胞是否在此数组中与否。

相关问题