阴影为何反映儿童子视图

时间:2018-01-24 13:03:53

标签: ios swift uikit shadow

我有一个视图,我在程序中应用阴影。但不幸的是,这个阴影出现在这个特定视图的所有子视图中。任何原因。

    cellView.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.25).cgColor
    cellView.layer.shadowOffset = CGSize(width: 0, height: 2)
    cellView.layer.shadowOpacity = 1.0
    cellView.layer.shadowRadius = 0.0
    cellView.layer.masksToBounds = false
    cellView.layer.cornerRadius = 4.0

    timeLabel = UILabel(frame: CGRect(x: 10, y: 5, width: 50, height: self.bounds.size.height - 30))
    timeLabel.font = AmeyoConstants.smallerFont
    timeLabel.textColor = UIColor.darkGray
    cellView.addSubview(timeLabel)

我只在cellView上应用了阴影,但在运行应用程序时,阴影也自动出现在timeLabel上。任何人都可以让我知道从父母到孩子的观点继承阴影的正当理由。

1 个答案:

答案 0 :(得分:3)

对于有阴影的视图,它必须具有不透明的背景颜色,我们无法从您的代码段中看到,但您是否将背景颜色设置为cellView

如果没有,那么阴影将不会应用于视图本身,而是应用于其子视图!

如果您考虑一下,透明纸张没有阴影(因为它当然是透明的),但是如果您在其上添加不透明物体,那么这些物体将会有阴影。

现在,如果您希望工作表具有阴影,那么您可以放置​​不透明的工作表吗?在这种情况下,相同的规则适用于iOS!