各个方向的实心阴影

Solid Shadow in All Directions

我一直在寻找一种方法来设置图层的shadow 属性,像这样:

其中浅蓝色是图层 - 在本例中是 UIImageView - 深蓝色是阴影。

我想要影子做的事:

我已经将 shadowOpacity 设置为零,但我找不到同时执行这两项操作的方法。例如,如果我有:

imageView.layer.shadowColor = UIColor.orangeColor().CGColor
imageView.layer.shadowOffset = CGSizeMake(4.0 , 4.0)
imageView.layer.shadowOpacity = 1;
imageView.layer.shadowRadius = 0
imageView.layer.masksToBounds = false

我在两侧得到了实心阴影。如果我希望阴影出现在所有四个边上,我将 shadowOffset 更改为特定大小并将 shadowRadius 更改为大于零的值,但它不是固定的。

另一种选择是使用 borderWidthborderColor。请记住,如文档中所述,边框绘制在图层边界内部,而不是延伸到外部,因此您可能需要适当调整其大小。

(根据您的用例,您可能会考虑使用带有插图的 UIImageView 来制作可拉伸图像,如果您的图层正在调整大小时,它可能具有不同的性能特征。)