iOS Swift如何为透明的UIView添加阴影

Posted

技术标签:

【中文标题】iOS Swift如何为透明的UIView添加阴影【英文标题】:iOS Swift how to add a shadow to a transparent UIView 【发布时间】:2017-10-22 03:51:58 【问题描述】:

我使用 UIView 作为带有阴影的叠加层,但是一旦我将 UIView 背景颜色设置为 .clear,我就不再看到阴影,有没有办法为具有清晰背景颜色的 UIView 添加阴影?

【问题讨论】:

透明对象不投射阴影。尝试改用图片 有道理,我想出了另一种不使用透明 UIViews 的覆盖方法 @mding5692 你找到解决方案了吗?如果是这样,请发布您的解决方案,以便其他人将来可以使用它 请在这里找到我对这个问题的答案:***.com/a/56194429/8903877 【参考方案1】:

是的,不透明度层小于 10 可以工作

@IBInspectable var shadowOffsetX : CGFloat = 0

@IBInspectable var shadowOffsetY : CGFloat = 0

@IBInspectable var shadowColor : UIColor? 
    didSet
        self.layer.shadowColor = shadowColor?.cgColor
    


@IBInspectable var shadowOpacity : Float = 0 
    didSet
        self.layer.shadowOpacity = shadowOpacity
    


@IBInspectable var shadowRadius : CGFloat = 0 
    didSet
        self.layer.shadowRadius = shadowRadius
    


@IBInspectable var cornerRadius : CGFloat = 0 
    didSet
        layer.cornerRadius = cornerRadius
        layer.masksToBounds = true
    


@IBInspectable var borderWidth : CGFloat = 0 
    didSet
        layer.borderWidth = borderWidth
    


@IBInspectable var borderColor : UIColor? 
    didSet
        layer.borderColor = borderColor?.cgColor
    


@IBInspectable var layerOpacity : Float = 0 
    didSet
        self.layer.opacity = layerOpacity
    


override func awakeFromNib() 
    super.awakeFromNib()
    self.layer.shadowOffset = CGSize(width: shadowOffsetX, height: shadowOffsetY)

【讨论】:

请添加一些信息,说明您的答案为何正确或您做了什么

以上是关于iOS Swift如何为透明的UIView添加阴影的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Swift 3.0 iOS 获得如下图所示的行为

IOS为UIButton添加了阴影

UIView iOS Swift下的多个阴影

如何为带有阴影的 UIView 赋予椭圆形状

如何为 UINavigationBar 设置不透明的 1px 高阴影图像?

如何在 ios Swift 的 UIView 中左右设置阴影?