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;

 }

選択した行が最後の行のセルの場合、ダウンロードした画像を削除する(=セルを追加)を設定しました。

- (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のイメージビューを削除するには?

4

1 に答える 1

0

正確な方法はわかりませんが、それを行うためのヒントを提供できます

このようなものを使用できます

NSArray *visiblePaths = [self.tableView indexPathsForVisibleRows];

visiblePaths は、現在表示されているセルの indexPaths の配列です。画像を削除するセルがこの配列にあるかどうかを確認できます。

于 2012-06-20T10:16:59.020 に答える