Есть ли способ динамической настройки контрольной точки четырехугольника безирпата?
Я создаю небольшое приложение для перетаскивания и рисования для детей.Я бы хотел, чтобы они добавили линию на холст, а затем отрегулировали точку кривой, чтобы создать улыбку или недовольство с помощью перетаскивания пальца.
В настоящее время я рисую простую линию, используя UIBezierPath, и я добавил распознаватель жестов к родителю.Я попытался удалить все точки и добавить новую четырехугольную кривую при перетаскивании, а также перерисовать путь с новыми координатами контрольной точки.
Вот как я создаю путь:
//path defined else where
func createBezierPath (withRectRef rectRef: RectFramer)-> UIBezierPath {
path.move(to: rectRef.bottomLeft)
path.move(to: rectRef.bottomRight)
path.move(to: rectRef.topRight)
path.addQuadCurve(to: rectRef.topLeft, controlPoint: CGPoint(x:rectRef.midX, y: rectRef.midY )) // top middle control point
return path
}
добавитьэто для просмотра
let shapeLayer = CAShapeLayer()
shapeLayer.path = createBezierPath(withRectRef: frameRef!).cgPath
shapeLayer.strokeColor = UIColor.blue.cgColor
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.lineWidth = 4.0
shapeLayer.position = CGPoint(x: 0, y: 0)
self.backgroundColor = UIColor.clear
// add the new layer to our custom view
self.layer.addSublayer(shapeLayer)
let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan))
gestureRecognizer.delegate = self
self.addGestureRecognizer(gestureRecognizer)
Любая помощь / советы будут оценены