UITableView Cell Drop Shadow问题

时间:2014-04-14 20:02:42

标签: ios objective-c uitableview

我正在使用以下代码为tableview中的最后一个单元格提供一个阴影

if (indexPath.row == myLastCellNum) {
    cell.layer.shadowColor = [[UIColor blackColor] CGColor];
    cell.layer.shadowOpacity = 0.5;
    cell.layer.shadowOffset = CGSizeMake(0, 1);
}

else {
    cell.layer.shadowColor = [[UIColor clearColor] CGColor];
    cell.layer.shadowOpacity = 0.0;
    cell.layer.shadowOffset = CGSizeMake(0, 0);
}

您可以在下面的图片中看到最后一个单元格的底部有一个投影。这就是我想要的。

enter image description here

问题在于每当我向上或向下滚动桌面视图时,桌面视图看起来就像下面的图像enter image description here

在这里,您会看到最后一个和倒数第二个单元格之间的分隔符也有阴影。这个阴影在设备上更加明显(图片来自模拟器)。

所以我的问题是,如何消除最后一个和倒数第二个细胞之间的额外阴影?

1 个答案:

答案 0 :(得分:3)

如果你在cellForRowAtIndexPath:中使用它,那么如何:

cell.layer.shadowColor = [[UIColor clearColor] CGColor];
cell.layer.shadowOpacity = 0.0;
cell.layer.shadowOffset = CGSizeMake(0, 0);

if (indexPath.row == myLastCellNum) {
    cell.layer.shadowColor = [[UIColor blackColor] CGColor];
    cell.layer.shadowOpacity = 0.5;
    cell.layer.shadowOffset = CGSizeMake(0, 1);
}

这样你就可以确保单元格没有阴影开始(用于单元格重用),然后只在输入if语句时给它一个阴影。