我有一个标准的分组表视图。我想在它周围添加一个阴影(即围绕每个tableview部分的边缘) – 如果你不确定我的意思,然后看到官方的twitter应用程序(下面)为例子。这是非常微妙的,但它绝对是一个阴影,而不是边界。
我如何实现这种效果?
保存为使用图像与内置阴影作为每个单元格的背景 – 这将不允许动画单元格调整大小像我需要 – 我还没有想出一种方法。
解决方法
我需要这种效果在我自己的应用程序的一天。这实际上很容易实现通过只使用CALayer阴影属性结合CALayer掩码。我把一个简单的示例项目放在Github:
https://github.com/schluete/GroupedTableViewWithShadows
效果在UITableViewCell类别UITableViewCell+CellShadows.m中实现。
第一步是创建一个阴影矩形。根据单元格在部分(顶部,中间,底部)中的位置放大矩形,以防止在错误的角落(线18-23)中看到圆角。然后将阴影添加到单元格的背景视图(第35-41行)。
现在有一个很好的阴影效果,但第一个单元格的阴影“出血”进入第二个单元格。为了防止出血,只需添加一个图层蒙版,以切断阴影的所有不必要的部分(第25-32和43-46行)。就是这样,我们有了我们的影子!