テーブルビューをスクロールしたときに、見えないテーブルビューセルにあるダウンロードした画像を削除したい。
ということでタグをつけました
- (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のイメージビューを削除するには?