在 Swift 中调整 CAShapeLayer 的大小

Resize CAShapeLayer in Swift

我正在努力实现这样的目标。我也在 Swift 中寻找答案。到目前为止我有一个 CAShapeLayer

对于 CAShapeLayer 我使用此代码创建它。

  let circlePath: UIBezierPath = UIBezierPath(arcCenter: CGPoint(x: 36, y: 47), radius: view.frame.width / 2, startAngle: 0, endAngle: CGFloat(M_PI * 2), clockwise: true)
  let circleShape: CAShapeLayer = CAShapeLayer()
  circleShape.path = circlePath.CGPath
  circleShape.fillColor = UIColor.clearColor().CGColor
  circleShape.lineWidth = view.frame.width - 80
  circleShape.strokeColor = Color().blue.CGColor
  circleShape.opacity = 0.87

效果很好,外观也很棒,但是当我想让它最初是一个 (1,1) 圆然后扩展到当前大小时,它不起作用。所以我想为圆圈设置动画,从半径 1 开始到半径 180 然后能够反转它。

如果您想为圆圈制作从小半径到大半径的动画,那么您需要创建一个 CABasicAnimation。使动画的起始值为小圆路径,结束值为大路径。如果您在 CAShapeLayer Swift animation 上进行 google 搜索,您应该能够找到一些对安装在 CAShapeLayer 中的形状进行动画更改的示例。 (我手头的所有代码都写在Objective-C中,我没有时间在Swift中写一个新的例子。)