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,但这个答案救了我!