How to add shadow to border, Swift

4 hours ago 3
ARTICLE AD BOX

I'm trying to add shadow to Border, but it is not working shadow should as seen in image, But actual requirement is like Button will be clear bg, and shadow around border. So how can i achieve it?

Image
enter image description here

Code

class GlowButton: UIButton { private let borderGlowLayer = CAShapeLayer() override init(frame: CGRect) { super.init(frame: frame) setup() } required init?(coder: NSCoder) { super.init(coder: coder) setup() } private func setup() { backgroundColor = .clear layer.masksToBounds = false clipsToBounds = false borderGlowLayer.fillColor = UIColor.clear.cgColor borderGlowLayer.strokeColor = UIColor.clear.cgColor borderGlowLayer.lineWidth = 2.5 borderGlowLayer.shadowOffset = .zero borderGlowLayer.shadowRadius = 0 borderGlowLayer.shadowOpacity = 0 borderGlowLayer.masksToBounds = false layer.addSublayer(borderGlowLayer) } override func layoutSubviews() { super.layoutSubviews() layer.masksToBounds = false clipsToBounds = false borderGlowLayer.frame = bounds borderGlowLayer.path = UIBezierPath(roundedRect: bounds, cornerRadius: 20).cgPath } override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { super.didUpdateFocus(in: context, with: coordinator) coordinator.addCoordinatedAnimations { if self.isFocused { self.borderGlowLayer.strokeColor = Colors.focused_border.cgColor self.borderGlowLayer.shadowColor = Colors.focused_border.cgColor self.borderGlowLayer.shadowRadius = 12 self.borderGlowLayer.shadowOpacity = 1.0 } else { self.borderGlowLayer.strokeColor = UIColor.clear.cgColor self.borderGlowLayer.shadowOpacity = 0.0 self.borderGlowLayer.shadowRadius = 0 } } } }
Read Entire Article