各个方向的实心阴影
Solid Shadow in All Directions
我一直在寻找一种方法来设置图层的shadow
属性,像这样:
其中浅蓝色是图层 - 在本例中是 UIImageView
- 深蓝色是阴影。
我想要影子做的事:
- 出现在所有四个边上:通过将
shadowOffset
设置为 CGSizeMake(0.0, 0.0)
并使 shadowRadius
非零 来实现
- 完全不透明:通过将
shadowOffset
设置为图层中的特定点并将 shadowRadius
设置为零来实现
我已经将 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
更改为大于零的值,但它不是固定的。
另一种选择是使用 borderWidth
和 borderColor
。请记住,如文档中所述,边框绘制在图层边界内部,而不是延伸到外部,因此您可能需要适当调整其大小。
(根据您的用例,您可能会考虑使用带有插图的 UIImageView 来制作可拉伸图像,如果您的图层正在调整大小时,它可能具有不同的性能特征。)
我一直在寻找一种方法来设置图层的shadow
属性,像这样:
其中浅蓝色是图层 - 在本例中是 UIImageView
- 深蓝色是阴影。
我想要影子做的事:
- 出现在所有四个边上:通过将
shadowOffset
设置为CGSizeMake(0.0, 0.0)
并使shadowRadius
非零 来实现
- 完全不透明:通过将
shadowOffset
设置为图层中的特定点并将shadowRadius
设置为零来实现
我已经将 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
更改为大于零的值,但它不是固定的。
另一种选择是使用 borderWidth
和 borderColor
。请记住,如文档中所述,边框绘制在图层边界内部,而不是延伸到外部,因此您可能需要适当调整其大小。
(根据您的用例,您可能会考虑使用带有插图的 UIImageView 来制作可拉伸图像,如果您的图层正在调整大小时,它可能具有不同的性能特征。)