我将顶部边框设置为UITableViewCell
时遇到问题。我的要求是为所有单元格设置底部边框,并且只为第一个单元格设置顶部边框。我使用下面的代码来设置这个
if (indexPath.row == 0){
CALayer* topCellBorder = [CALayer layer];
topCellBorder.frame = CGRectMake(0, 1, CGRectGetWidth(cell.frame) , 0.5);
topCellBorder.backgroundColor = [config getColour:@"theme.table-border.color"].CGColor;
[cell.layer addSublayer:topCellBorder];
}
CALayer* bottomCellBorder = [CALayer layer];
bottomCellBorder.frame = CGRectMake(0, CGRectGetHeight(cell.frame) - 0.5, CGRectGetWidth(cell.frame) , 0.5);
bottomCellBorder.backgroundColor = [config getColour:@"theme.table-border.color"].CGColor;
[cell.layer addSublayer:bottomCellBorder];
但滚动后,顶部边框消失了,并添加到下一个视图中,如下所示
此外,我看到滚动时边框闪烁。导致此行为的任何想法
答案 0 :(得分:1)
正在重复使用单元格,因此旧边框仍然存在。滚动时,第一个单元格将重新用于其他单元格,并且它已经有topCellBorder
。
我建议您在awakeFromNib
方法中为单元格添加单元格边框,只需在顶部和底部边框上打开和关闭。因此,您的单元格应该具有两个边框图层,但基于表格视图数据源中的indexPath.row
,您只需显示和隐藏它们。