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

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

【问题讨论】:

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

标签: ios swift uiview


【解决方案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)
}

【讨论】:

  • 请添加一些信息,说明您的答案为何正确或您做了什么
猜你喜欢
  • 2012-06-07
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 2013-07-04
  • 2016-09-30
  • 1970-01-01
相关资源
最近更新 更多