Пробовали ли вы вместо этого установить штрих в UIBezierPath? Вы можете сделать это с помощью следующих строк кода перед закрытием UIBezierPath:
Color.purple.setStroke()
bezierPath.stroke()
Вот результат, которого мне удалось достичь на игровой площадке:
Однако я понял, что не могу изменить его ширину, поэтому вместо этого я создал другой слой только для границы.
let borderLayer = CAShapeLayer()
borderLayer.frame = self.bounds
borderLayer.path = bezierPath.cgPath
borderLayer.lineWidth = 6.0
borderLayer.strokeColor = UIColor.black.cgColor
borderLayer.fillColor = UIColor.clear.cgColor
self.layer.insertSublayer(borderLayer, at: 0)
Результат игровой площадки:
Я думаю, что это должно помочь, но я не могу много предложить без кода о том, как достигается форма. Вы используете UIBezierPath или CGContext?