在我的tableview控制器上,一些单元格上有一个半透明视图,表示用户已停用的单元格。当我的tableview第一次出现时,正确显示单元格,并在正确的单元格上显示半透明视图。但是,当我滚动浏览桌面视图时,其上没有半透明视图的单元格会消失,然后刷新,半透明视图会渗透到该单元格上。细胞的所有其他元素都可以,除了这个半透明视图现在就在它上面。
在单元格被填充之前,当我从后端下拉数据时,在单元格上显示半透明视图依赖于一个名为“active”的BOOL。由于我不是在现场计算这个BOOl或其他任何东西,我不确定为什么这个观点正在流血。任何想法如何解决这一问题?谢谢!
答案 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以获取更多详细信息。
如果您需要更多帮助,请与我们联系。