Я через UIBezierPath рисую ShapeLayer, как на него можно наложить Recognizer, или как вообще можно реагировать на нажатие на него?
Код:
let TopPath = UIBezierPath()
TopPath.move(to: CGPoint(x: 50, y: 30))
TopPath.addLine(to: CGPoint(x: backView.bounds.width - 50, y: 30))
TopPath.addQuadCurve(to: CGPoint(x: backView.bounds.width - 30, y: 50), controlPoint: CGPoint(x: backView.bounds.width - 30, y: 30))
TopPath.addLine(to: CGPoint(x: backView.bounds.width - 30, y: backView.bounds.height / 4))
TopPath.addArc(withCenter: CGPoint(x: backView.bounds.width - 50, y: backView.bounds.height / 4) , radius: 20, startAngle: 0, endAngle: .pi / 2.75, clockwise: true)
TopPath.addLine(to: CGPoint(x: 60, y: backView.bounds.height / 2 - 2.5))
TopPath.addArc(withCenter: CGPoint(x: 50, y: backView.bounds.height / 2 - 20), radius: 20, startAngle: .pi / 3, endAngle: .pi, clockwise: true)
TopPath.addLine(to: CGPoint(x: 30, y: 50))
TopPath.addQuadCurve(to: CGPoint(x: 50, y: 30), controlPoint: CGPoint(x: 30, y: 30))
topLayer.path = TopPath.cgPath