带有Spread&Size属性的CALayer阴影?

bij*_*jan 9 photoshop core-animation core-graphics shadow ios

我正在努力在CALayer周围创造一个阴影.为了达到我想要实现的效果,我需要访问阴影的"强度".不知何故像Photoshop的图层样式中的"传播"滑块.我认为CALayer的"ShadowRadius"属性相当于Photoshop的"大小"滑块.

有什么建议?可能是径向渐变选项吗?

gsc*_*ler 8

设置图层的shadowOffset,shadowOpacityshadowRadius你应该有你在找什么.尝试使用阴影项目直接"下面"模糊5像素的图层,使用正确的颜色,也可以使它看起来像一个发光:

CALayer *layer = myView.layer;
layer.shadowOpacity = 0.50;
layer.shadowRadius = 5.0;
layer.shadowOffset = (CGSize){.width=0.0,.height=0.0};
Run Code Online (Sandbox Code Playgroud)


jla*_*lar 6

您可以通过在CALayer上设置自定义shadowPath属性来控制"传播".

CGFloat radius = CGRectGetWidth(view.bounds)/2.0;
// this is a sample code for a circle, but you can use any shape you want
CGPathRef shadowPathRef = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 2.0 * radius, 2.0 * radius) cornerRadius:radius].CGPath;

layer.shadowPath = shadowPathRef;
Run Code Online (Sandbox Code Playgroud)

如果将radius设置为更大的值,则阴影扩展将更大.