Ios UIView阴影定义太多

Ios UIView阴影定义太多,ios,swift,shadow,Ios,Swift,Shadow,我正试着在这样的景色上画一个阴影 这就是我的结局。我结合了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 la

我正试着在这样的景色上画一个阴影

这就是我的结局。我结合了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中的阴影更清晰,我很难在不花几个小时猜测和检查的情况下找出原因。有人能给我指出正确的方向吗?

我绝对建议使用更亮的颜色。你的情况似乎很黑暗。此外,增加半径可能会导致阴影不太清晰,因为它显然会扩散到更大的区域

要使颜色变亮,只需在此处增加所有三个rgb值。如果你想要一个非常轻的阴影,我建议将rgb通道设置为大约200。(白色)

你可以在这里增加半径

layer.layer.shadowRadius = 4

如果不在视图中添加背景色,我无法获得阴影。无论如何,以下是我尝试的设置和结果:

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)

因此,以下是您需要考虑的设置:

  • 对阴影颜色使用纯色
  • 通过
    shadowOpacity
  • 通过阴影半径控制“硬度”。半径越小,阴影越硬或越清晰

颜色越浅,半径越大,y偏移量略大。还可以使用完全不透明度的颜色,并在层中设置
阴影不透明度
值。嘿,你应该建议OP更改属性的值。@LinusGeffarth我建议只使用这些值,因为每个人的首选项都不同。即使将rgb通道设置为180-200左右也是一个良好的开端。这将产生一个非常轻微的阴影。然后将这个建议准确地放入你的答案中。
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)