Создание объединения двух безьеров

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

Как представляется, не существует Core Graphics API для создания объединений. Я не прав?

Если я не знаю, кто-нибудь знает библиотеку, которая может справиться с этим? Я ищу GitHub безрезультатно.

Ответ 1

UIBezierPath делает это, если вы работаете с закрытыми формами.

UIBezierPath *firstPath = [UIBezierPath bezierPath];
// build your path

UIBezierPath *secondPath = [UIBezierPath bezierPath];
// build your path

[firstPath appendPath:secondPath];

Ответ 2

В Swift 3: Beizerpath может быть объединен: -

 override func draw(_ rect: CGRect) {
    super.draw(rect)

    UIColor.black.setStroke()
    UIColor.red.setFill()

    let currentContext = UIGraphicsGetCurrentContext()
    currentContext?.saveGState() 

    let path = drawTopView()
    path.lineWidth = 5.0
    path.fill()
    path.stroke()

    let middlepath = drawMiddleView()
    middlepath.lineWidth = 2.0
    middlepath.fill()
    middlepath.stroke()

    path.append(middlepath)
    currentContext?.restoreGState()
}