当我滚动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] ]也为空。
[[imageRemoveInProgress objectForKey:NSNumber numberWithInt:row+100]在appImageDidLoad中有值。
但是在- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath中
它有NULL。
为什么标记和设置的键值单元格的imageView变为空?
如何移除tableViewcell的imageview?
发布于 2012-06-20 18:16:59
我不知道确切的方法,但我可以提供一点提示。
您可以使用下面这样的内容
NSArray *visiblePath= self.tableView indexPathsForVisibleRows;
visiblePaths是当前可见的单元格的indexPaths数组,您可以检查要移除图像的单元格是否在此数组中。
https://stackoverflow.com/questions/11116748
复制相似问题