【发布时间】:2015-07-10 20:46:11
【问题描述】:
我已经完成了部分动画。我想做的是创建像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)
【问题讨论】:
-
你是否尝试过 strokeStart/rightStart 的负值?
-
不。
strokeStart和strokeEnd只允许从 0.0 到 1.0。
标签: ios xcode swift uibezierpath caanimation