gpt4 book ai didi

ios - 如何在iOS中进行填充进度圈?

转载 作者:行者123 更新时间:2023-12-01 18:48:42 25 4
gpt4 key购买 nike

我需要做一个这样的进度圈:enter image description here

我为圆创建了一个CAShapeLayer,并对它的strokeEnd属性进行了动画处理,如下所示:

pieShape = CAShapeLayer()
pieShape.path = UIBezierPath(arcCenter: CGPointMake(29, 29), radius: 27.0, startAngle: CGFloat(startAngle), endAngle: CGFloat(endAngle), clockwise: true).CGPath
pieShape.fillColor = UIColor.clearColor().CGColor
pieShape.strokeColor = UIColor.blackColor().CGColor
pieShape.lineWidth = 4.0

self.layer.addSublayer(pieShape)


let countDownAnimation = CABasicAnimation(keyPath: "strokeEnd")
countDownAnimation.duration = durationInSeconds
countDownAnimation.removedOnCompletion = false
countDownAnimation.fromValue = NSNumber(float: 0.0)
countDownAnimation.toValue = NSNumber(float: 1.0)
countDownAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
self.pieShape.strokeStart = 1.0
self.pieShape.addAnimation(countDownAnimation, forKey: "drawCircleAnimation")

但是,这不是我想要的。我需要为圆形填充动画,而不仅仅是边框。谢谢。

最佳答案

最简单的方法是仅对笔触进行作弊并为其设置动画,但使它看起来像在给圆的填充动画。例如,如果您想要一个半径为30的圆,请改用radius15,但使用lineWidth30,这样笔划有效地覆盖了从中心到所需的30半径的范围。

enter image description here

使用CADisplayLink可以进行更复杂的方法,然后自己进行更新,但是上述方法是达到所需效果的简单方法。

关于ios - 如何在iOS中进行填充进度圈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32897920/

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