我使用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)
答案 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
}
我还没有测试代码。请自己验证。