Быстрое обновление addQuadCurve Control Point? - PullRequest
0 голосов
/ 05 июня 2018

Есть ли способ динамической настройки контрольной точки четырехугольника безирпата?

Я создаю небольшое приложение для перетаскивания и рисования для детей.Я бы хотел, чтобы они добавили линию на холст, а затем отрегулировали точку кривой, чтобы создать улыбку или недовольство с помощью перетаскивания пальца.

В настоящее время я рисую простую линию, используя 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)

Любая помощь / советы будут оценены

1 Ответ

0 голосов
/ 06 июня 2018

Мне не удалось достичь того, что я хотел, пытаясь отрегулировать четырехугольник существующей траектории ... Вместо этого мне приходилось каждый раз перерисовывать траекторию с откорректированной кривой.

...