2017-01-23 3 views
1

플립 카드 시계 애니메이션을 구현하는 UI 구성 요소에서 작업합니다. 모두 정상적으로 작동하지만 최고 CALayer 내용을 새 이미지로 변경하면 변경하기 전에 기존 이미지가 계속 표시됩니다. 혼란을 일으 킵니다. 더 나은 설명은 내가 GIF 애니메이션 울부 짖는 소리를 배치 :애니메이션 완료 전에 CALayer 내용 변경

firstTopLayer.contents = secondTopLayer.contents 
let bottomAnim = CABasicAnimation(keyPath: "transform") 
bottomAnim.duration = animDuration/2 
bottomAnim.repeatCount = 1 
bottomAnim.fromValue = NSValue.init(caTransform3D: 
CATransform3DMakeRotation((CGFloat)(M_PI_2), 1, 0, 0)) 
bottomAnim.toValue = NSValue.init(caTransform3D: 
CATransform3DMakeRotation(0, 1, 0, 0)) 
bottomAnim.isRemovedOnCompletion = true 
bottomAnim.timingFunction = CAMediaTimingFunction.init(name: kCAMediaTimingFunctionEaseIn) 
firstBottomLayer.add(bottomAnim, forKey: "bottom") 
firstBottomLayer.contents = self.bufferContents 

자세한 내용은 내가 repository

답변

1

I에 대한 링크를 배치 :

enter image description here

이는있는 CALayer의 내용을 변경하여 코드입니다 해결책을 찾았습니다. 상단 애니메이션은이 구성을 가져야합니다.

및 이후 각각이 애니메이션을 시작해야합니다. 상부층이 지난 프레임 애니메이션 위치

유지 이러한 구성

firstTopLayer.removeAnimation(forKey: kTopAnimaton) 

관련 문제