设置 outerBelowCircle CAShapeLayer 在视图中心的位置

Set position of outerBelowCircle CAShapeLayer in the center of View

我用 CAShapeLayer 做了一个圆,我想把它的中心设置在视图的中心。但是圆圈将恰好在中心线下方创建(见屏幕截图),有人可以帮助我吗?

let circle = CAShapeLayer()
view.layer.addSublayer(circle)
circle.position = view.center


    let circularPath = UIBezierPath(arcCenter: .zero, radius: 100, startAngle: 0, endAngle: 2 * CGFloat.pi, clockwise: true)
    circle.path = circularPath.cgPath

我也改了设置居中的方式,还是不行

circle.position = CGPoint(x: view.layer.bounds.midX, y: view.layer.bounds.midY)

根据你的截图考虑下面的方法这个方法会解决你的问题。

func showCircle() {

    let view = UIView()
    let circle = CAShapeLayer()
    view.layer.addSublayer(circle)
    let positionX = view.center.x
    let positionY = view.center.y - 100 // your circle radius
    circle.position = CGPoint(x: positionX, y:  positionY)


    let circularPath = UIBezierPath(arcCenter: .zero, radius: 100, startAngle: 0, endAngle: 2 * CGFloat.pi, clockwise: true)
    circle.path = circularPath.cgPath
}

我还没有测试代码。请自行验证。