当不再选择某个单元格或选择其他单元格时,如何消除在UITableView中选择一个单元格时创建的视图。

假设我有以下针对didSelectRowAtIndexPath的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    CGSize cellSize = [tableView cellForRowAtIndexPath:indexPath].frame.size;

    UIView *selectionView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, (int)cellSize.width, (int)(cellSize.height + 100))];
    selectionView.layer.borderWidth = 2;

    [[tableView cellForRowAtIndexPath:indexPath]addSubview:selectionView];

}


现在,当我专注于另一个单元格时,我想删除创建的selectionView,然后再次将其创建到我正在聚焦的单元格中。单元格,从上一个单元格创建的selectionView仍然不会消失,它已经复制了视图。我应该如何解决呢?需要建议.. :(谢谢..

最佳答案

您需要为tag添加selectionView,如下所示

selectionView.tag = 100;


另外,您需要通过声明NSIndexPath类成员并保留它来引用最后选择的indexPath。

因此,在选择新单元格时,请获取具有最后选择的索引路径的单元格,并按如下所示从该单元格中删除视图

UITableViewCell *lastCell = [tableView cellForRowAtIndexPath:lastSelIndexPath];
UIView *view = [lastCell viewWithTag:100];
[view removeFromSuperview];

10-08 12:06