【发布时间】:2016-11-03 08:34:12
【问题描述】:
【问题讨论】:
标签: ios objective-c ipad storyboard
【问题讨论】:
标签: ios objective-c ipad storyboard
//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)];
【讨论】:
请尝试一次:-
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/中查看更多信息
【讨论】:
那些不是光,而是阴影。您可以使用该图层为 UI 元素绘制阴影。
【讨论】: