首页 > 解决方案 > 设置outerBelowCircle CAShapeLayer在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)

在此处输入图像描述

标签: swiftviewcashapelayer

解决方案


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

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
}

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


推荐阅读