저는 CAShapeLayer에서 CAAnimation을 사용하여 왼쪽에서 오른쪽으로 스트로크하는 선을 간단하게 애니메이션으로 만듭니다 (더 복잡한 프로그램의 축소 버전 일뿐입니다). 나는 시작 부분이 거의 순간적임을 보여주기 위해 속도를 줄 였고 나머지는 정상적으로 움직였다.CAAnimation에서 UIViewAnimationCurve 옵션을 사용하는 방법
저는 UIView.animate의 옵션을 사용하여 UIViewAnimationCurve 옵션 (예 : .EaseIn 또는 .Linear)을 설정할 수 있음을 확인했습니다. CAShapeLayer에 CAAnimation을 임베드 할 때 이러한 옵션을 설정할 수 있습니까? 그리고 당신이 그것을 실행하기를 원할 때마다 애니메이션을 생성 할 필요가 있습니까, 아니면 "애니메이션 실행"명령이 있습니까? 사전에
// the containing UIView is called mainView
mainView.layer.sublayers = nil
// create a line using a UIBezierPath
let path = UIBezierPath()
path.move(to: CGPoint(x: 100, y: 100))
path.addLine(to: CGPoint(x: 300, y: 100))
// create a CAShapeLayer
let shapeLayer = CAShapeLayer()
shapeLayer.frame = CGRect(x: 0, y: 0, width: 1024, height: 1024)
shapeLayer.strokeColor = UIColor.green.cgColor
shapeLayer.lineWidth = 100
shapeLayer.path = path.cgPath
// create the animation
mainView.layer.addSublayer(shapeLayer)
let animation = CABasicAnimation(keyPath: "LetterStroke")
animation.fromValue = 0
animation.toValue = 1
animation.duration = 10
shapeLayer.add(animation, forKey: "animation")
많은 감사 :
다음은 내 컷 다운 코드입니다.
정답이며 많은 도움을드립니다. 나는 실제로 당신이 아래에서 볼 수 있듯이 다른 곳에 문제가 있다는 것을 발견했다. 그러나 실제로 당신이 말한 것처럼 내 질문에 답했다. –