对于 CALayer 上的阴影属性,是否只是矩形且仅针对图层?也就是说,使用 quartz 我可以在任意路径上填充路径时设置阴影。我可以使用 CALayer 的阴影属性来做到这一点吗?我不这么认为,但我想要确认。
最佳答案
是的,您可以使用 CALayer 上的 shadowPath 属性来设置自定义阴影。这是一个例子:
[shadowDepth.layer setMasksToBounds:NO ];
[shadowDepth.layer setShadowColor:[[UIColor blackColor ] CGColor ] ];
[shadowDepth.layer setShadowOpacity:0.5 ];
[shadowDepth.layer setShadowRadius:6.0 ];
[shadowDepth.layer setShadowOffset:CGSizeMake( 0 , 0 ) ];
[shadowDepth.layer setShouldRasterize:YES ];
UIBezierPath * depthShadowPath = [UIBezierPath bezierPath ];
[depthShadowPath moveToPoint:CGPointMake( 40 , 140 ) ];
[depthShadowPath addLineToPoint:CGPointMake( shadowDepth.frame.size.width - 40 , 140 ) ];
[depthShadowPath addLineToPoint:CGPointMake( shadowDepth.frame.size.width + 20 , shadowDepth.frame.size.height + 40 ) ];
[depthShadowPath addLineToPoint:CGPointMake( -10 , shadowDepth.frame.size.height + 40 ) ];
[depthShadowPath addLineToPoint:CGPointMake( 40 , 140 ) ];
[shadowDepth.layer setShadowPath:[depthShadowPath CGPath ] ];
我就此发表了一篇文章,并提供了一些技巧来优化对您的应用程序的性能影响。在这里查看:CALayer Shadows
关于iOS:CALayer 阴影只有矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5432233/