У меня есть код, который рисует дугу в iOS и преобразовал его для использования в macOS.
Вот код iOS, который рисует дугу.
let circleCenter = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2)
let circlePath = UIBezierPath(arcCenter: circleCenter, radius: self.frame.width / 2, startAngle: -CGFloat.pi / 2, endAngle: 1.5 * CGFloat.pi, clockwise: true)
let progress = CAShapeLayer()
progress.path = circlePath.cgPath
progress.strokeColor = UIColor.green.cgColor
progress.strokeEnd = 0.4
progress.lineCap = .round
progress.lineWidth = 15
progress.fillColor = UIColor.clear.cgColor
self.layer.addSublayer(progress)
Вот код, который я преобразовал для использования в macOS.
let circle = NSBezierPath()
circle.appendArc(withCenter: circleCenter, radius: self.frame.width / 2, startAngle: rad2deg(-CGFloat.pi / 2), endAngle: rad2deg(1.5 * CGFloat.pi))
let progress = CAShapeLayer()
progress.path = circle.cgPath
progress.strokeColor = NSColor.green.cgColor
progress.strokeEnd = 0.4
progress.lineCap = .round
progress.lineWidth = 15
progress.fillColor = NSColor.clear.cgColor
self.layer?.addSublayer(progress)
Код работает вmacOS, однако, результирующий рисунок переворачивается.Я понимаю, что начальные координаты в iOS отличаются от macOS, и код macOS должен быть изменен, чтобы справиться с этим.Каков наилучший способ достичь этого?Любая помощь с благодарностью.