设置 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
}
我还没有测试代码。请自行验证。
我用 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
}
我还没有测试代码。请自行验证。