gpt4 book ai didi

swift - 带 cornerRadius 的矩形中的线动画

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

我需要沿着圆角矩形创建长度恒定的线条动画。所以我在创建所需的 BezierPath UIBezierPath(roundedRect: CGRect(x: 50, y: 50, width: 100, height: 100), cornerRadius: 5) 之后停下来所以下一步我需要做的是使用 CAKeyframeAnimation 为沿该路径的宽度为 45 的线设置动画有人可以帮我吗?

最佳答案

那好吧。使用破折号模式而不是开始/结束。建议使用this repo计算 cgPath 长度以制作您需要的模式。

let rectangle = UIView(frame: CGRect(x: 0, y: 0, width: 500, height: 500))
rectangle.clipsToBounds = true
rectangle.backgroundColor = .blue
rectangle.layer.cornerRadius = 50

let path = UIBezierPath(roundedRect: rectangle.bounds, cornerRadius: 50)
let shape = CAShapeLayer()
shape.path = path.cgPath
shape.lineWidth = 10
shape.strokeColor = UIColor.red.cgColor

shape.fillColor = UIColor.clear.cgColor
let length = path.cgPath.length
shape.lineDashPattern = [NSNumber(value: 45), NSNumber(value: Float(length - 45))]
rectangle.layer.addSublayer(shape)


let animation = CABasicAnimation(keyPath: "lineDashPhase")
animation.fromValue = 0
animation.toValue = length //-length to run animation clock-wise
animation.repeatCount = .infinity
animation.duration = 10
shape.add(animation, forKey: "MyAnimation")

PlaygroundPage.current.liveView = rectangle

关于swift - 带 cornerRadius 的矩形中的线动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56538620/

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