Закругленный угол вырезанной дуги с помощью UIBezierPathIOS

Программируем под IOS
Ответить
Anonymous
 Закругленный угол вырезанной дуги с помощью UIBezierPath

Сообщение Anonymous »

Я рисую вырез в CAShapeLayer с помощью UIBezierPath, вот такой код у меня есть:

Код: Выделить всё

let view = UIView(
frame: CGRect(origin: .zero, size: CGSize(width: 500.0, height: 500.0))
)
view.backgroundColor = .clear

let shapeLayer = CAShapeLayer()
shapeLayer.frame = view.bounds
shapeLayer.fillColor = UIColor.systemMint.cgColor

let mainPath = UIBezierPath(
roundedRect: CGRect(
origin: CGPoint(x: 50.0, y: 50.0), size: CGSize(width: 400.0, height: 400.0)
),
cornerRadius: 10.0
)

let cutOutArc = UIBezierPath()
cutOutArc.addArc(
withCenter: CGPoint(x: 50.0, y: 250.0),
radius: 50.0,
startAngle: .pi / 2.0,
endAngle: .pi + .pi / 2.0,
clockwise: false
)
cutOutArc.addLine(to: CGPoint(x: 50.0, y: 200.0))
cutOutArc.close()

mainPath.append(cutOutArc)

shapeLayer.fillRule = .evenOdd
shapeLayer.path = mainPath.cgPath

view.layer.insertSublayer(shapeLayer, at: 0)
(Код упрощен и адаптирован для использования в Playground.)
Код приводит к такой форме (выглядит именно так, как мне нужно):
Изображение

Что я не могу понять, как это сделать, — это добавить угловой радиус к вырезанной дуге (куда указывают красные стрелки на изображении ниже), скажем, 4,0 балла. Я играл с довольно случайными вариантами уже пару дней, но без какого-либо значимого результата. Я пытался спросить ИИ, и он тоже не смог этого понять (на самом деле он просто продолжал выдавать неработающий код).
Изображение

Кто-нибудь знает, как сделать это? Любые рекомендации очень ценятся!

Подробнее здесь: https://stackoverflow.com/questions/798 ... bezierpath
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»