2014-11-20 3 views
0

사용자가 백그라운드에서 앱을 반환 한 후 UIView 애니메이션을 다시 시작하려고합니다.배경에서 돌아온 후에 UIView 애니메이션이 막혔습니다. ios8 (Rubymotion)

여기에 애니메이션의 :

def animate_glow 
    UIView.animateWithDuration(GLOW_SPEED, 
     delay: 0.0, 
     options: UIViewAnimationOptionRepeat | 
       UIViewAnimationOptionAutoreverse | 
       UIViewAnimationOptionAllowUserInteraction, 
     animations: -> { 
     @swipe_glow.transform = CGAffineTransformMakeScale(GLOW_SCALE, GLOW_SCALE) 
     }, 
     completion: nil 
    ) 
    end 

UIApplicationWillEnterForegroundNotification 듣기 내가 animate_glow 전화를 시도하고 있지만,/다시 시작하지 내 애니메이션을 방지한다. 로그에는 알림 수신기가 호출되고 UIView.areAnimationsEnabledtrue을 반환하는 것으로 나타납니다. 또한 @swipe_glow에 의해 참조 된 뷰를 superview에서 제거하고 새 뷰를 생성하고 시도한 결과 animate_glow이 또한 실제 애니메이션에는 영향을 미치지 않습니다 (새 UIView는 문제없이 생성 될 수 있음).

누구든지 설명 할 수 있습니까?

답변

1

난 그냥 경우 다른 사람에, 발견 해결책이 문제를 발견 :이 라인은 문제의 원인 인 것처럼

UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse |

을, 애니메이션 배경에서 반환 된 때와 애니메이션이되고 있었다 끝점 (GLOW SCALE)으로 설정합니다. 그런 다음 시스템은 애니메이션을 다시 시작하려고 시도했지만 애니메이션을 변경하지 않았습니다.

두 가지 가능한 해결책 : UIApplicationDidEnterBackground을 듣고 처리기에서 뷰를 애니메이션 위치의 원래 위치로 다시 설정합니다.

또는 블록에서 서로를 호출하는 역방향 메서드 &을 애니메이션으로 변경합니다.

희망이 있으면 도움이됩니다.