当不再选择某个单元格或选择其他单元格时,如何消除在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];