gpt4 book ai didi

ios - CAShapeLayer 的定位

转载 作者:行者123 更新时间:2023-11-28 13:40:33 26 4
gpt4 key购买 nike

我目前正在尝试实现一个CAShapeLayer。它工作正常,但它的位置没有按照我想要的方式工作。

我希望圆圈显示在您在下面第二张图片中看到的顶部选定的 UIView 中。为此,我尝试将 arcCenter 设置为 circleView.center。但是显示的是下图。

显示方式:
enter image description here

我希望它显示在这个 UIView 的中心:
enter image description here

我的代码:

func displayCircle() {
let color = UIColor(red: 11/255, green: 95/255, blue: 244/255, alpha: 1)
let trackLayer = CAShapeLayer()
let center = circleView.center
let circularPath = UIBezierPath(arcCenter: center, radius: 100, startAngle: -CGFloat.pi / 2, endAngle: 2 * CGFloat.pi, clockwise: true)

trackLayer.path = circularPath.cgPath
trackLayer.strokeColor = UIColor.groupTableViewBackground.cgColor
trackLayer.lineWidth = 20
trackLayer.fillColor = UIColor.clear.cgColor

shapeLayer.path = circularPath.cgPath
shapeLayer.strokeColor = color.cgColor
shapeLayer.lineWidth = 20
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.lineCap = CAShapeLayerLineCap.round
shapeLayer.strokeEnd = 0

circleView.layer.addSublayer(trackLayer)
circleView.layer.addSublayer(shapeLayer)
}

编辑,UIView的约束:
enter image description here

最佳答案

您可以像下面这样简单地更改圆 View 的中心位置,

let center = CGPoint(x: circleView.frame.size.width/2, y: circleView.frame.size.height/2)

希望以上方法能帮到你。

关于ios - CAShapeLayer 的定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56092480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com