私は現在、ビデオの進行状況インジケータとして使用されているアニメーションを持っています。しかし、今私たちはそれをタップして2.5秒前にスキップすることができる機能を持っているので、進捗インジケータアニメーションを実装して2.5秒前にスキップするようにしています。アニメーションを2.5秒前にスキップするにはどうすればよいですか?私は "animationGroup.timeOffset = 2.5"を試しましたが、動作しません。ここでCABasicAnimation(iOS)でスキップ
func performProgressIndicatorAnimation(duration: Float64) {
layer.mask = nil
layer.speed = 1.0
self.duration = duration
let strokeStartAnimation = CABasicAnimation(keyPath: "strokeStart")
strokeStartAnimation.fromValue = 0
strokeStartAnimation.toValue = 1
strokeStartAnimation.duration = duration
strokeStartAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
animationGroup = CAAnimationGroup()
animationGroup.duration = duration
animationGroup.animations = [strokeStartAnimation]
externalCircle.addAnimation(animationGroup, forKey: "animationGroup")
}
//私のexternalCircleが描かれているところである。
private func drawCircles() {
let externalCirclePath = UIBezierPath(roundedRect: CGRectMake(0, 0, bounds.height, bounds.height), cornerRadius: bounds.height/2)
externalCircle.path = externalCirclePath.CGPath
externalCircle.fillColor = UIColor.clearColor().CGColor
externalCircle.strokeColor = UIColor.whiteColor().CGColor
externalCircle.lineWidth = 2
let internalCircleRadius = bounds.size.height/5
let internalCirclePath = UIBezierPath(roundedRect: CGRectMake(0, 0, internalCircleRadius * 2, internalCircleRadius * 2), cornerRadius: internalCircleRadius)
internalCircle.path = internalCirclePath.CGPath
internalCircle.fillColor = UIColor.whiteColor().CGColor
internalCircle.position = CGPointMake(CGRectGetMidX(bounds) - internalCircleRadius,
CGRectGetMidY(bounds) - internalCircleRadius);
layer.addSublayer(internalCircle)
layer.addSublayer(externalCircle)
}
私は何をしなければならなかったか(私の答えを見てください) –