我试图像这样在UIView上留下阴影
这就是我最终得到的。我结合了Invision给我的东西
let layer = UIView(frame: CGRect(x: 8, y: 454, width: 359, height: 100))
layer.layer.shadowOffset = CGSize(width: 0, height: 2)
layer.layer.shadowColor = UIColor(red:0, green:0, blue:0, alpha:0.08).cgColor
layer.layer.shadowOpacity = 1
layer.layer.shadowRadius = 4
self.view.addSubview(layer)
还有其他一些代码,我发现我正在浏览StackOverflow来达到目的
Layer.ShadowRadius = 2.0f;
Layer.ShadowColor = UIColor.FromRGBA(0.00f, 0.00f, 0.00f, 0.08f).CGColor;
Layer.ShadowOffset = new CGSize(2, 2);
Layer.ShadowOpacity = 0.80f;
Layer.ShadowPath = UIBezierPath.FromRect(Layer.Bounds).CGPath;
Layer.MasksToBounds = false;
您可以看到,我的影子比invision中的影子要清晰得多,而且我很难弄清楚为什么不花大量时间进行猜测和检查。谁能指出我正确的方向?
答案 0 :(得分:2)
我绝对建议使用较亮的颜色。就您而言,这似乎很暗。此外,增加半径可能会导致阴影定义不明确,因为它显然会散布在更大的区域上。
要增亮颜色,只需在此处增加所有三个rgb值即可。如果您想要一个非常浅的阴影,我建议将rgb通道设置为大约200。(255产生白色)
layer.layer.shadowColor = UIColor(red:0, green:0, blue:0, alpha:0.08).cgColor
您可以在此处增加半径。
layer.layer.shadowRadius = 4
答案 1 :(得分:1)
在不为视图添加背景色的情况下,我无法获得阴影。无论如何,这是我尝试的设置和结果:
let view = UIView(frame: CGRect(x: 8, y: 454, width: 359, height: 100))
view.backgroundColor = .white
view.layer.shadowOffset = CGSize(width: 0, height: 5)
view.layer.shadowColor = UIColor.black.cgColor
view.layer.shadowOpacity = 0.1
view.layer.shadowRadius = 5
self.view.addSubview(view)
因此,您可以考虑以下设置:
shadowColor
使用纯色shadowOpacity
shadowRadius
控制“硬度”。半径越小,阴影越难定义。