Swift更新addQuadCurve控制点?

时间:2018-06-05 16:14:07

标签: ios swift path uibezierpath

有没有办法动态调整bezier路径的四边形曲线的控制点?

我正在为孩子们创建一个小型的拖放绘图应用程序。我希望他们在画布上添加一条线然后调整曲线点以使用手指拖动创建微笑或皱眉。

我目前正在使用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 :(得分:0)

我无法实现我想要调整现有路径的四边形曲线。我不得不每次都用调整后的曲线重绘路径。