doing dual shadows now

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2023-06-16 14:48:25 -05:00
parent ea2667ed87
commit ee8f472239

View File

@ -340,14 +340,13 @@ class DropShadowViewController: BaseViewController<ShadowView> {
}
public class ShadowView: View {
public var shadow1 = View()
public var shadow2 = View()
public var viewLightColor: UIColor.VDSColor = .paletteGray65 { didSet { setNeedsUpdate() }}
public var viewDarkColor: UIColor.VDSColor = .backgroundPrimaryLight { didSet { setNeedsUpdate() }}
public var viewRadiusRange: CGFloat = 8.0 { didSet { setNeedsUpdate() }}
private var shadowLayer1: CALayer = CALayer()
public var showShadow: Bool = true { didSet { setNeedsUpdate() }}
public var opacityRange: CGFloat = 1.0 { didSet { setNeedsUpdate() }}
public var offsetXRange: CGFloat = 2.0 { didSet { setNeedsUpdate() }}
@ -356,6 +355,7 @@ public class ShadowView: View {
public var shadowLightColor: UIColor.VDSColor = .backgroundPrimaryDark { didSet { setNeedsUpdate() }}
public var shadowDarkColor: UIColor.VDSColor = .backgroundPrimaryLight { didSet { setNeedsUpdate() }}
private var shadowLayer2: CALayer = CALayer()
public var showShadow2: Bool = false { didSet { setNeedsUpdate() }}
public var opacityRange2: CGFloat = 1.0 { didSet { setNeedsUpdate() }}
public var offsetXRange2: CGFloat = 2.0 { didSet { setNeedsUpdate() }}
@ -366,23 +366,22 @@ public class ShadowView: View {
public override func setup() {
super.setup()
addSubview(shadow1)
addSubview(shadow2)
shadow1.pinToSuperView()
shadow2.pinToSuperView()
width(constant: 100)
height(constant: 100)
// Add shadow layers as sublayers of the view's layer
layer.insertSublayer(shadowLayer1, at: 0)
layer.insertSublayer(shadowLayer2, at: 0)
}
public override func updateView() {
super.updateView()
let viewColor = SurfaceColorConfiguration(viewLightColor.uiColor, viewDarkColor.uiColor).getColor(surface)
backgroundColor = viewColor
shadow1.backgroundColor = .brown
shadow2.backgroundColor = .yellow
shadow1.isHidden = !showShadow
shadow2.isHidden = !showShadow2
shadowLayer1.backgroundColor = viewColor.cgColor
shadowLayer2.backgroundColor = viewColor.cgColor
shadowLayer1.isHidden = !showShadow
shadowLayer2.isHidden = !showShadow2
setNeedsLayout()
layoutIfNeeded()
}
@ -392,24 +391,24 @@ public class ShadowView: View {
super.layoutSubviews()
let dropshadowColor = SurfaceColorConfiguration(shadowLightColor.uiColor, shadowDarkColor.uiColor).getColor(surface)
let dropshadowColor2 = SurfaceColorConfiguration(shadowLightColor.uiColor, shadowDarkColor.uiColor).getColor(surface)
let dropshadowColor2 = SurfaceColorConfiguration(shadowLightColor2.uiColor, shadowDarkColor2.uiColor).getColor(surface)
layer.cornerRadius = CGFloat(viewRadiusRange)
layer.masksToBounds = false
shadow1.layer.cornerRadius = CGFloat(viewRadiusRange)
shadow1.layer.masksToBounds = false
shadow1.layer.cornerRadius = CGFloat(viewRadiusRange)
shadow1.layer.shadowColor = UIColor.purple.cgColor //dropshadowColor.cgColor
shadow1.layer.shadowOpacity = Float(opacityRange)
shadow1.layer.shadowOffset = .init(width: CGFloat(offsetXRange), height: CGFloat(offsetYRange))
shadow1.layer.shadowRadius = CGFloat(radiusRange)
// Update shadow layers frames to match the view's bounds
shadowLayer1.frame = bounds
shadowLayer2.frame = bounds
shadowLayer1.cornerRadius = CGFloat(viewRadiusRange)
shadowLayer1.shadowColor = dropshadowColor.cgColor
shadowLayer1.shadowOpacity = Float(opacityRange)
shadowLayer1.shadowOffset = .init(width: CGFloat(offsetXRange), height: CGFloat(offsetYRange))
shadowLayer1.shadowRadius = CGFloat(radiusRange)
shadow2.layer.cornerRadius = CGFloat(viewRadiusRange)
shadow2.layer.masksToBounds = false
shadow2.layer.cornerRadius = CGFloat(viewRadiusRange)
shadow2.layer.shadowColor = UIColor.blue.cgColor//dropshadowColor2.cgColor
shadow2.layer.shadowOpacity = Float(opacityRange2)
shadow2.layer.shadowOffset = .init(width: CGFloat(offsetXRange2), height: CGFloat(offsetYRange2))
shadow2.layer.shadowRadius = CGFloat(radiusRange2)
shadowLayer2.cornerRadius = CGFloat(viewRadiusRange)
shadowLayer2.shadowColor = dropshadowColor2.cgColor
shadowLayer2.shadowOpacity = Float(opacityRange2)
shadowLayer2.shadowOffset = .init(width: CGFloat(offsetXRange2), height: CGFloat(offsetYRange2))
shadowLayer2.shadowRadius = CGFloat(radiusRange2)
}
}