UIView阴影也定义

时间:2018-08-23 16:01:08

标签: ios swift shadow

我试图像这样在UIView上留下阴影

enter image description here

这就是我最终得到的。我结合了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;

enter image description here

您可以看到,我的影子比invision中的影子要清晰得多,而且我很难弄清楚为什么不花大量时间进行猜测和检查。谁能指出我正确的方向?

2 个答案:

答案 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)

Result

因此,您可以考虑以下设置:

  • shadowColor使用纯色
  • 通过shadowOpacity
  • 调整亮度
  • 通过shadowRadius控制“硬度”。半径越小,阴影越难定义。