如何在表格视图单元格内的视图顶部和底部放置阴影?

Posted

技术标签:

【中文标题】如何在表格视图单元格内的视图顶部和底部放置阴影?【英文标题】:How can i drop shadow to top and bottom of view which is inside the table view cell? 【发布时间】:2018-08-07 06:34:20 【问题描述】:

我在表格视图单元格中有一个视图,如果出现以下情况,我想在该视图中显示阴影

    如果在第一个单元格上查看,则将阴影投射到顶部、左侧、右侧。 如果在最后一个单元格上查看,则将阴影投射到底部、左侧、右侧。 其他方式仅在左侧和右侧投影。

谢谢。

【问题讨论】:

您要求投影的方式实际上并不适用,您可能需要自己绘制阴影或相应地使用重叠视图。 【参考方案1】:
yourView.layer.shadowColor = UIColor.black.cgColor
yourView.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
yourView.layer.shadowOpacity = 0.5
yourView.layer.shadowRadius = 2.0

然后将下面的代码调整为您想要投射阴影的角落的方式。

var shadowRect: CGRect = yourView.bounds.insetBy(dx: 0, dy: 4) // inset top and bottom of the cell
yourView.layer.shadowPath = UIBezierPath(rect: shadowRect).cgPath

【讨论】:

【参考方案2】:

把这段代码放到你的班级里

extension UIView 

func dropShadow(scale: Bool = true) 
    layer.masksToBounds = false
    layer.shadowColor = UIColor.black.cgColor
    layer.shadowOpacity = 0.2
    layer.shadowOffset = CGSize.zero
    layer.shadowRadius = 5

然后调用它:--

YourView.dropShadow(scale: true)

【讨论】:

以上是关于如何在表格视图单元格内的视图顶部和底部放置阴影?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用视图顶部的工具栏滚动表格视图

如何更改分组的表格视图单元格的背景?

我们如何快速在表格视图底部添加展开和折叠单元格

绝对顶部:0 底部:0 在 IE11 的表格单元中不起作用

设置表格视图单元格的高度以匹配底部到标签栏顶部

表视图,如何将删除按钮放在前面?