2016-07-19 5 views
0

일부 원을 애니메이션에 적용하고 불투명도를 동시에 변경하려고합니다.키 프레임 애니메이션 중 불투명도 변경하기 Swift

 UIView.animateKeyframesWithDuration(2, delay: 0, options: .Repeat, animations: { 
     UIView.addKeyframeWithRelativeStartTime(0, relativeDuration: 0.5, animations: { 
      self.innerRingView.alpha = 1 
     }) 
     UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.5, animations: { 
      self.innerRingView.alpha = 0 
      self.middleRingView.alpha = 1 
     }) 
     UIView.addKeyframeWithRelativeStartTime(1, relativeDuration: 0.5, animations: { 
      self.middleRingView.alpha = 0 
      self.outterRingView.alpha = 1 
     }) 
     UIView.addKeyframeWithRelativeStartTime(1.5, relativeDuration: 0.5, animations: { 
      self.outterRingView.alpha = 0 
     }) 
     }, completion: nil) 

어떤 이유로, 두 번째 애니메이션에 도달하지 :이 때문에

UIView.addKeyframeWithRelativeStartTime(1, relativeDuration: 0.5, animations: { 
     self.middleRingView.alpha = 0 
     self.outterRingView.alpha = 1 
    }) 

, 내 애니메이션이 작동하지 않습니다. innerRingView는 0 불투명도로 돌아 가지 않으며 outterRingView는 절대로 표시되지 않습니다. 모든보기는 기본적으로 0 알파로 설정됩니다.

여기에 무슨 문제가있는 것 같습니까?

답변

2

문제는 범위 0 0 전체 애니메이션의 시작을 나타내고, 1, 1에있을 수 있어야

UIView.addKeyframeWithRelativeStartTime 

가 전체의 끝을 나타내는 키 프레임의 상대 시작 시간과 함께 등장 생기. 예를 들어, 애니메이션의 길이가 2 초인 경우 시작 시간을 0.5로 지정하면 전체 애니메이션이 시작된 후 1 초 후에 애니메이션이 실행됩니다.

+0

Idindu가 나를 이길. (투표 됨.) 상대 시작 시간은 0 (전체 애니메이션의 시작 부분)과 1 (애니메이션 끝 부분)의 범위 내에 있어야합니다. –

+0

전체 애니메이션의 길이를 2 초로하려면. 내 키 프레임의 상대 시작 시간을 2로 설정해야합니까? 그래서 0, 0.25, 0.5, 0.75? – Bob

+0

각 애니메이션 블록에 걸리는 시간은 전체 재생 시간과 관련되므로 누적 시간을 추적하여 시작 시간이 올바른지 확인해야합니다. AFAIK 비율은 2 일 필요는 없지만 전체 지속 시간 2 내에서 실제 애니메이션은 options 매개 변수에 의해 안내되는 AFAIK를 보간합니다. – ldindu

관련 문제