如何添加低于其他视图的阴影

时间:2018-01-19 05:02:35

标签: ios uikit

我有标题视图,标题阴影视图和表格视图。标题视图具有清晰的背景。标题阴影视图具有浅蓝色背景颜色,高度仅为1px。表视图不会剪切到边界。

因此,此处的效果是当您向上滚动时,表视图内容将通过透明标题视图。

这里的问题是带阴影的视图位于表格视图内容之上,因此当您向上滚动时,会出现一条带阴影的蓝色细线。如果您要检查macy上的星星,您会看到细蓝线与内容重叠。 Overlapping view

2 个答案:

答案 0 :(得分:1)

如果是tableView单元格,则将视图添加为背景视图,以便为该视图应用阴影和设置阴影

试试这段代码:

func setShadow(view:UIView){
    view.layer.masksToBounds = false
    view.layer.shadowOffset = CGSize(width: 0, height: 0)
    view.layer.cornerRadius = 5 // set cornerRadius you want
    view.layer.shadowRadius = 4.0 // set shadow Radius you want
    view.layer.shadowOpacity = 0.5 // set shadow opacity you want
}

设置阴影

setShadow(view:yourView)

答案 1 :(得分:0)

1.首先,您可以在tableview Cell中使用UIView

2.然后创建一个CardsView类我提到

3.在你给UIView课程名称之后是Cardsview

//请粘贴到您的项目中......

导入UIKit

@IBDesignable

类CardsView:UIView {

@IBInspectable var cornerRadius: CGFloat = 10   //replece 2
@IBInspectable var shadowOffsetWidth: Int = 0
@IBInspectable var shadowOffsetHeight: Int = 3
@IBInspectable var shadowColor: UIColor? = UIColor.black
@IBInspectable var shadowOpacity: Float = 0.5

override func layoutSubviews() {

    layer.cornerRadius = cornerRadius
    let shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius)
    layer.masksToBounds = false
    layer.shadowColor = shadowColor?.cgColor
    layer.shadowOffset = CGSize(width: shadowOffsetWidth, height: shadowOffsetHeight);
    layer.shadowOpacity = shadowOpacity
 layer.shadowPath = shadowPath.cgPath
}

}