【问题标题】:UITableView Cell Drop Shadow IssueUITableView 单元格阴影问题
【发布时间】:2014-04-14 20:02:42
【问题描述】:

我正在使用以下代码为表格视图中的最后一个单元格添加阴影

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);
}

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

问题是每当我向上或向下滚动表格视图时,表格视图看起来就像下面的图像

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

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

【问题讨论】:

  • 您是否在“tableView:cellForRowAtIndexPath:”中运行该代码?如果是这样,我认为该代码应该可以工作......也许还可以尝试将 shadowRadius 设置回 0。

标签: ios objective-c uitableview


【解决方案1】:

如果你在 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 语句时才给它一个阴影。

【讨论】:

  • 谢谢,但没有这样做。
  • 你能分享一下你的 cellForRowAtIndexPath 代码吗?
  • 即使只有这个代码,除了在cellForRowAtIndexPath中初始化,结果是一样的。
  • 没有更多代码,很难帮你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
  • 2016-07-08
  • 2013-04-07
  • 2014-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多