我在我的xib中创建了一个uiview,背景颜色为清晰的颜色。当我在视图图层上应用阴影时,阴影不会出现。但是当我设置除了清晰颜色之外的背景颜色时,阴影就会显示出来。请帮忙。
这是我的代码
self.cView.layer.shadowColor=[UIColor whiteColor].CGColor;
self.cView.layer.shadowOffset=CGSizeZero;
self.cView.layer.shadowRadius=30.0;
self.cView.layer.shadowOpacity=1.0;
self.cView.layer.cornerRadius=10.0;
答案 0 :(得分:28)
问题是,阴影实际上考虑了“上层”。如果没有任何内容就没有阴影:How Shadows Work
编辑:
view.layer.shadowColor = [UIColor colorWithWhite:.5 alpha:1].CGColor;
view.layer.shadowRadius = 4.0f;
view.layer.shadowPath = CGPathCreateWithRect(CGRectMake(0, 0, 50, 50), NULL);
view.layer.shadowOpacity = 1.0f;
view.layer.shadowOffset = CGSizeMake(1, 1);
但是我怀疑这对你有什么用处:结果是一个“涂有”阴影颜色和周围阴影的视图。
答案 1 :(得分:2)
如果您指定shadowPath属性(例如shadowView.layer.shadowPath = UIBezierPath(roundedRect: shadowView.bounds, cornerRadius: 10).cgPath
),即使使用.clear backgroundColor也可以使用。
答案 2 :(得分:1)
相当于@Rok Jark在Swift 4中的回答:
self.layer.shadowColor = UIColor(white: 0.5, alpha: 1).cgColor
self.layer.shadowRadius = 4.0
self.layer.shadowPath = CGPath.init(rect: CGRect.init(x: 0, y: 0, width: 50, height: 50), transform: nil)
self.layer.shadowOpacity = 1.0;
self.layer.shadowOffset = CGSize(width: 1, height: 1)
答案 3 :(得分:0)
您是否忘记将self.cView.clipToBounds
设为NO
?