iOS 上更强的阴影

Posted

技术标签:

【中文标题】iOS 上更强的阴影【英文标题】:Stronger shadow on iOS 【发布时间】:2017-04-19 06:40:31 【问题描述】:

我正在尝试用一些发光效果为按钮设置动画。

到目前为止,这是我得到的:

self.glowLayer = [[CALayer alloc] init];
self.glowLayer.contents = (__bridge id _Nullable)(self.currentBackgroundImage.CGImage);
self.glowLayer.opacity = 0; // set to 1 with animation.
self.glowLayer.shadowColor = [UIColor vtoPinkColor].CGColor;
self.glowLayer.shadowOffset = CGSizeZero;
self.glowLayer.shadowRadius = 5;
self.glowLayer.shadowOpacity = 1;
self.glowLayer.rasterizationScale = [UIScreen mainScreen].scale;
self.glowLayer.shouldRasterize = YES;
[self.layer addSublayer:self.glowLayer];

但是,我发现发光效果不够强。 当然,我可以更改阴影半径以使其更宽,但这只会使阴影“稀释”而不是变得更强。

我应该如何进行?

【问题讨论】:

什么是[UIColor vtoPinkColor]?它已经部分透明了吗?您的内容图像在心形内部是否部分透明?尝试使用完全不透明的阴影颜色和阴影投射部分也完全不透明的图像。 也可以尝试“更暗”的阴影颜色(具有相同的色调但亮度降低)。 否;此颜色不包含透明度(与心相同) 【参考方案1】:

改变值 self.glowLayer.shadowOpacity 1 将为您工作。 并尝试 Translucent = No

【讨论】:

不,这不起作用。来自文档“此属性中的值必须在 0.0(透明)到 1.0(不透明)的范围内。此属性的默认值为 0.0。” shadowOpacity 范围从 0 到 1 设置 self.glowLayer.translucent=NO; 对不起,我弄错了:不透明度稍后设置为1。 CALayer 没有半透明属性。

以上是关于iOS 上更强的阴影的主要内容,如果未能解决你的问题,请参考以下文章

IOS给UIButton添加阴影

iOS同时设置圆角和阴影含部分圆角

iOS:创建一侧的阴影

IOS为UIButton添加了阴影

在 iOS8 中为 UITabbar 添加阴影

iOS 中 ImageView 的阴影效果