Code: Select all
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)
Der Code ergibt diese Form (sieht genau so aus, wie ich sie brauche):

Was ich Ich kann nicht herausfinden, wie man einen Eckradius zum ausgeschnittenen Bogen hinzufügt (wohin die roten Pfeile im Bild unten zeigen), sagen wir, von 4,0 Punkten. Ich habe jetzt ein paar Tage lang mit ziemlich zufälligen Optionen gespielt, ohne aussagekräftiges Ergebnis. Ich habe versucht, die KI zu fragen, aber sie konnte es auch nicht herausfinden (sie produzierte einfach weiterhin fehlerhaften Code).

Weiß jemand wie? um es zu tun? Jede Anleitung ist sehr willkommen!
Mobile version