如何让这个动画逆时针转动?

时间:2015-07-10 20:46:11

标签: ios xcode swift uibezierpath caanimation

我已经完成了部分动画制作。我要做的是创建像this这样的线条边框动画,其中线条穿过矩形的顶部和右侧。除此之外我还需要创建另一条线,它反映视频中显示的线(沿着矩形的左侧然后移动),逆时针方向。我尝试使用-bezierPathByReversingPath(_ :)函数执行此操作,但它使行的原点从矩形的左下角开始。我不知道该怎么做,任何帮助将不胜感激! 这是我的代码:

// Create layer
rightLine = CAShapeLayer()
rightLine.bounds = centerButton.bounds
rightLine.position = view.center
rightLine.path = UIBezierPath(rect: rightLine.bounds).CGPath
rightLine.lineWidth = 3
rightLine.strokeColor = UIColor(hex: "3D424E").CGColor
rightLine.fillColor = UIColor.clearColor().CGColor
rightLine.strokeStart = 0
rightLine.strokeEnd = 0

// Create animation
let rightStart = CABasicAnimation(keyPath: "strokeStart")
rightStart.toValue = 0
let rightEnd = CABasicAnimation(keyPath: "strokeEnd")
rightEnd.toValue = 0.5

rightLineGroup = CAAnimationGroup()
rightLineGroup.animations = [rightStart, rightEnd]
rightLineGroup.duration = 1.5
rightLineGroup.autoreverses = true
rightLineGroup.repeatCount = HUGE // repeat forever

self.view.layer.addSublayer(rightLine)
rightLine.addAnimation(rightLineGroup, forKey: nil)

1 个答案:

答案 0 :(得分:0)

strokeStart从零设置为零无效。

您可能希望将strokeEnd保留在1.0(默认设置),并将strokeStart1.0设置为0.5。这应该会产生预期的效果。