如何删除不可见的 tableview 单元格的下载图像。在ios中
Posted
技术标签:
【中文标题】如何删除不可见的 tableview 单元格的下载图像。在ios中【英文标题】:how to remove invisible tableview cell's downloaded image . in ios 【发布时间】:2012-06-20 09:39:01 【问题描述】:当我滚动表格视图时,我想在不可见的表格视图单元格中删除下载的图像。
所以我设置了一个标签
- (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删除所选行时的下载图像是最后一个行小区(=添加单元格)。
- (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。
为什么tagged和seted key value cell的imageView会变成NULL?
如何去除tableViewcell的imageview?
【问题讨论】:
【参考方案1】:我不知道确切的方法,但我可以提供一个提示
你可以使用这样的东西
NSArray *visiblePaths = [self.tableView indexPathsForVisibleRows];
visiblePaths 是当前可见单元格的 indexPaths 数组,您可以检查要删除图像的单元格是否在该数组中。
【讨论】:
以上是关于如何删除不可见的 tableview 单元格的下载图像。在ios中的主要内容,如果未能解决你的问题,请参考以下文章
如何从 tableview 的单元格中删除 imageView,并重置单元格的高度
如何在swift 3中删除tableview中特定单元格的按钮
如何在使用多个部分时为 tableView 单元格的删除/添加设置动画,而部分的数量可能会发生变化