答案 0 :(得分:4)
//Drop Shadow
[view.layer setShadowColor: [UIColor grayColor].CGColor];
[view.layer setShadowOpacity:0.8];
[view.layer setShadowRadius:3.0];
[view.layer setShadowOffset:CGSizeMake(2.0, 2.0)];
答案 1 :(得分:2)
请尝试一次: -
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:view.bounds];
view.layer.masksToBounds = NO;
view.layer.shadowColor = [UIColor blackColor].CGColor;
view.layer.shadowOffset = CGSizeMake(0.0f, 5.0f);
view.layer.shadowOpacity = 0.5f;
view.layer.shadowPath = shadowPath.CGPath;
说明: -
如上一步所示,使用Core Animation添加阴影时需要一些不同的属性。如果您不熟悉Core Animation,请不要担心,只需关注影子代码而不是视图上的CALayer
。
shadowOffset
是一个CGSize,表示从路径偏移阴影的距离。
shadowColor
是阴影的颜色。阴影颜色应始终不透明,因为不透明度将由shadowOpacity属性设置。 shadowColor
属性为CGColor
,而非UIColor
。
shadowRadius
是阴影路径上阴影的宽度
shadowOpacity
确定阴影的不透明度。
shadowPath
可能是最重要的属性。虽然可以在不指定路径的情况下绘制阴影,但出于性能原因,您应始终指定一个阴影。这条路径告诉Core Animation视图的不透明区域是什么,没有它,事情会严重减慢!它是CGPath
,使用UIBezierPath
(仅限iOS)最容易创建,如步骤2所示。
在http://nscookbook.com/2013/01/ios-programming-recipe-10-adding-a-shadow-to-uiview/
中查看详情答案 2 :(得分:0)
那些不是灯光,而是阴影。您可以使用该图层为UI元素绘制阴影。