Ios 为什么阴影会在子视图上反射

Ios 为什么阴影会在子视图上反射,ios,swift,uikit,shadow,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 cellV

我有一个视图,其中我正在通过编程应用阴影。但不幸的是,该阴影出现在该特定视图的所有子视图上。任何原因

    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上。有人能告诉我将阴影从父视图继承到子视图的正确原因吗。

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

如果不是,则阴影将不会应用于视图本身,而是应用于其子视图

如果你仔细想想,一张透明的纸没有阴影(因为它当然是透明的),但是如果你在上面添加不透明的对象,那么这些对象就会有阴影


现在,如果你想让这张纸有阴影,那么你应该放一张不透明的纸,对吗?在这种情况下,同样的规则也适用于iOS

设置
cellView.backgroundColor=UIColor.white
。阴影正在反射到子视图,因为您将此代码而不是
cellView放置在清晰的颜色处。图层
仅使用
cellView
@Priya:它起作用了。谢谢。我用UIColor.clear绕过了它。谢谢你@priya。它成功了。我忘了添加bg颜色。这是一个很好的例子来理解这个问题。尽管我使用的是SwiftUI,但这个答案救了我!