首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CAShapeLayer定位

CAShapeLayer定位
EN

Stack Overflow用户
提问于 2019-05-11 16:58:09
回答 1查看 35关注 0票数 0

我目前正在尝试实现一个CAShapeLayer。它工作得很好,但它的位置并不像我想的那样工作。

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

显示方式:

,我希望它显示在这个UIView:的中心

我的代码:

代码语言:javascript
复制
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的约束:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-11 17:23:56

你只需将圆周视图的中心位置更改如下,

代码语言:javascript
复制
let center = CGPoint(x: circleView.frame.size.width/2, y: circleView.frame.size.height/2)

希望这样能对你有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56092480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档