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