矩形周围的阴影实现

Posted

技术标签:

【中文标题】矩形周围的阴影实现【英文标题】:Shadow Implementation around a Rectangle 【发布时间】:2018-08-10 10:53:28 【问题描述】:

我正在尝试在自定义 UIButton 周围创建阴影。但我面临的问题是按钮标题也有阴影,这是我不想要的。 如何避免按钮标题周围出现阴影,只在角落有阴影。

我现在的代码是:

self.layer.shadowColor = [UIColor.redColor CGColor];
self.layer.shadowOpacity = 0.75;
self.layer.shadowRadius = 5;
//self.layer.shadowPath = CGPathCreateWithRect(self.bounds, NULL);
self.layer.shadowOffset = CGSizeMake(0, 0);

我认为这与 shadowPath 属性有关,但不完全确定。现在,它看起来像这样。

我也尝试使用 setTitleShadowColor 属性为零,但没有帮助。

【问题讨论】:

我还想补充一点:这个 UIButton 是另一个视图的子视图。我正在尝试将阴影分配给按钮的父视图。不知何故,阴影规范也被应用到了按钮上,这需要被阻止 【参考方案1】:

试试这个代码。您可以对 UIView 使用相同的代码 :-) Swift 4

btn.layer.shadowColor = #colorLiteral(red: 0.4392156899, green: 0.01176470611, blue: 0.1921568662, alpha: 1)
    btn.layer.shadowOffset = CGSize(width: 0, height: 0)
    btn.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
    btn.layer.shadowRadius = 5
    let shadowPath = UIBezierPath(roundedRect: btn.bounds, cornerRadius: 0)
    btn.layer.shadowPath = shadowPath.cgPath
    btn.layer.shadowOpacity = 1

必须让我知道它是否适合你。

【讨论】:

以上是关于矩形周围的阴影实现的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中应用模糊滤镜时如何从图像中删除黑色阴影矩形?

Flutter 尺寸缩放形状颜色阴影变换动画

UICollectionViewCell 边框/阴影

使用纯黑色矩形的 WPF 边框

Flutter之Decoration(边框圆角阴影形状渐变背景图像等)

如何为 ImageButton 添加阴影?