2017-01-06 18 views
2

CALayers로 애니메이션을 만들고 싶습니다. 하위 레이어가 여러 개인 부모 레이어가 있으므로 확대하고 스크롤하고 싶습니다. 다음과 같이 부모 레이어를 확대하려고애니메이션 CALayer - 확대/축소 및 스크롤

우선 : 애니메이션이 적용되면, 서브 레이어가 잘못된 위치 및 크기에 남아 있습니다

let transformAnimation = CABasicAnimation(keyPath: "bounds.size.width") 
transformAnimation.duration = 2.3 
transformAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
transformAnimation.toValue = 650*2 
transformAnimation.beginTime = CACurrentMediaTime() + 4 
transformAnimation.autoreverses = false 
transformAnimation.isRemovedOnCompletion = false 
transformAnimation.fillMode = kCAFillModeForwards 
parentLayer.add(transformAnimation, forKey: "transformAnimation") 
// 
let transformAnimation2 = CABasicAnimation(keyPath: "bounds.size.height") 
transformAnimation2.duration = 2.3 
transformAnimation2.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
transformAnimation2.toValue = 650*2 //CGAffineTransform.identity 
transformAnimation2.beginTime = CACurrentMediaTime() + 4 
transformAnimation2.autoreverses = false 
transformAnimation2.isRemovedOnCompletion = false 
transformAnimation2.fillMode = kCAFillModeForwards 
parentLayer.add(transformAnimation2, forKey: "transformAnimation2") 

. 애니메이션을 적용해야합니까? 어떻게해야합니까?

감사합니다!

답변

1

widthheight을 하나의 레이어로 업데이트하고 있으며 하위 레이어의 bounds도 변경 될지 궁금합니다. 아니요, 아마도 별도로 애니메이션을 제작해야 할 것입니다. 그러나 별도의 애니메이션을 시작하는 대신 CAAnimationGroup으로 시작할 수 있습니다.

뷰인 경우 하위 뷰의 크기 조정을보다 정교하게 조정하는 제약 조건을 정의 할 수 있습니다. 그러나 레이어를 사용하면이 작업을 직접 수행해야합니다. (당신이 당신과 같은 방식으로하는 이유가있을 수 있지만 질문에서 명확하지 않습니다.)

+0

Thanks Rob! 나는 그것을 시도 할 것이다. – Carol