add Shadow on UIView using swift 3

后端 未结 18 1293
攒了一身酷
攒了一身酷 2020-11-30 19:49

prior swift 3 i was adding shadow in my UIView like this :

//toolbar is an UIToolbar (UIView)
toolbar.layer.masksToBounds = false
toolbar.layer.shadowOffset          


        
18条回答
  •  爱一瞬间的悲伤
    2020-11-30 20:19

    If you need rounded shadow. Works for swift 4.2

    extension UIView {
    
            func dropShadow() {
    
                var shadowLayer: CAShapeLayer!
                let cornerRadius: CGFloat = 16.0
                let fillColor: UIColor = .white
    
                if shadowLayer == nil {
                    shadowLayer = CAShapeLayer()
    
                    shadowLayer.path = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius).cgPath
                    shadowLayer.fillColor = fillColor.cgColor
    
                    shadowLayer.shadowColor = UIColor.black.cgColor
                    shadowLayer.shadowPath = shadowLayer.path
                    shadowLayer.shadowOffset = CGSize(width: -2.0, height: 2.0)
                    shadowLayer.shadowOpacity = 0.8
                    shadowLayer.shadowRadius = 2
    
                    layer.insertSublayer(shadowLayer, at: 0)
                }
            }
        }
    

    Swift 4 rounded UIView with shadow

提交回复
热议问题