带投影的UITableView

时间:2015-10-29 13:08:39

标签: ios objective-c uitableview

我知道如何在UIViews周围添加阴影,甚至在视图bounds发生变化时为其设置动画。但是,我看到了一个看起来有点棘手的观点。 UITableView

在此视图周围添加阴影非常简单,甚至可以通过此示例:Adding drop shadow to UITableView 它运作良好。不过我的问题是我需要阴影绕过cell中的最后一个UITableView,而不是它bounds。因此,顶部,侧面和底部将是UITableView中的最后一个单元格。

考虑它是如何工作让我相信有更好的解决方案。也许如果我能够根据单元格数量调整UitableView的帧?然而,细胞是动态的,直到运行时我才知道它们的高度。

我们非常感谢任何建议。

谢谢!

2 个答案:

答案 0 :(得分:1)

类似......

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
  if (indexPath.row == [self tableView:tableView numberOfRowsInSection:indexPath.section] - 1) {
    // last row
    cell.layer.shadowOpacity = 0.5;
    cell.layer.shadowPath = [UIBezierPath bezierPathWithRect:cell.bounds].CGPath;
    cell.layer.masksToBounds = NO;
  }
}

答案 1 :(得分:0)

只有一个选项符合您的要求:

1)为top, left and right的{​​{1}}添加阴影。

2)将阴影添加到UITableView的{​​{1}}。为此,您可能需要增加UITableView的最后一个单元格的高度;