在View中心设置外部BelowCircle CAShapeLayer的位置

时间:2019-04-27 15:44:20

标签: swift view cashapelayer

我使用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)

enter image description here

1 个答案:

答案 0 :(得分:1)

根据您的屏幕截图考虑以下方法,该方法将解决您的问题。

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
}

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