iOS半透明视图在Tableview细胞出血到其他细胞

时间:2016-01-25 05:56:21

标签: ios uitableview

在我的tableview控制器上,一些单元格上有一个半透明视图,表示用户已停用的单元格。当我的tableview第一次出现时,正确显示单元格,并在正确的单元格上显示半透明视图。但是,当我滚动浏览桌面视图时,其上没有半透明视图的单元格会消失,然后刷新,半透明视图会渗透到该单元格上。细胞的所有其他元素都可以,除了这个半透明视图现在就在它上面。

在单元格被填充之前,当我从后端下拉数据时,在单元格上显示半透明视图依赖于一个名为“active”的BOOL。由于我不是在现场计算这个BOOl或其他任何东西,我不确定为什么这个观点正在流血。任何想法如何解决这一问题?谢谢!

4 个答案:

答案 0 :(得分:2)

细胞被重复使用。如果要从表视图控制器添加它,则下次使用单元格时视图仍将存在。您最终可能会将此视图的多个层添加到单元格中。

半透明视图应该是您在需要时显示或隐藏的单元格的永久部分,而不是在显示单元格时添加的内容。

答案 1 :(得分:1)

我认为您需要清除背景颜色的细胞添加此方法。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
 [cell setBackgroundColor:[UIColor clearColor]];

答案 2 :(得分:0)

但是,您添加了半透明视图,请在方法

中将其删除
-(void)tableView:(UITableView *)tableView willDisplayCell (UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
//Remove transparent view
}

答案 3 :(得分:0)

您的单元格中似乎没有使用prepareForReuse。 在不查看任何代码的情况下,我猜您使用prepareForReuse不正确或根本不使用。

在重新使用之前,需要清理一个单元并将其恢复到初始状态,如果不这样做,那么当重用前者时,添加到单元格的内容可以显示在任何随机单元格中。

您应该查看我的回答here以获取更多详细信息。

如果您需要更多帮助,请与我们联系。