Полезности (Может кто подправит!)


#1

Встала задача сделать красивый конец чека, вот решение, выкладываю потому, что не работал с графикой почти, а решений толком не нашел, может кому будет полезно, можеткто-то подправит) сделано под extension UIView

57

  func drawCheckSeparator(startPoint: CGPoint? = nil, endPoint: CGPoint? = nil, count: Int = 30) {
            
            layer.backgroundColor = UIColor.clear.cgColor
            let shapeLayer = CAShapeLayer()
            shapeLayer.fillColor = Color.white.cgColor
            let height = bounds.maxY - bounds.minY
            let width = (endPoint?.x ?? bounds.maxX) - (startPoint?.x ?? bounds.minX)
            
            let path = UIBezierPath()
            path.move(to: .zero)
            path.addLine(to: CGPoint(x: 0, y: height))
            
            let defaultStap = width / CGFloat(count)
            var isTop = false
            
            var stap = defaultStap
            while stap <= (width + 0.9) {
                let y = isTop ? height : 0
                let point = CGPoint(x: stap, y: y)
                path.addLine(to: point)
                stap += defaultStap
                isTop = !isTop
            }
            
            path.addLine(to: CGPoint(x: width, y: 0))
            path.close()
            
            shapeLayer.path = path.cgPath
            shapeLayer.shadowOffset = .zero
            shapeLayer.shadowColor = UIColor.green.withAlphaComponent(0.5).cgColor
            shapeLayer.shadowRadius = 10
            shapeLayer.shadowOpacity = 0.4
            self.layer.addSublayer(shapeLayer)
        }