2017-03-15 3 views
0

gif 애니메이션을 관리하기 위해 Gifu를 프로젝트에 설치했습니다.Gifu가 애니메이션 작업을 마쳤을 때 코드 실행

애니메이션의 1 루프가 끝나면 코드를 실행하는 방법을 아는 사람이 있습니까?

완성 처리 코드가 애니메이션과 동시에 실행되는 것 같습니다.

override func viewDidLoad() { 
    super.viewDidLoad() 

    animatedDone.animate(withGIFNamed: "animatedTick.gif") 
    animatedDone.prepareForAnimation(withGIFNamed: "animatedTick.gif", loopCount: 1) { (Void) in 
     saveAndExit() 
    } 

} 

답변

2

이 콜백은 애니메이션을 준비하기위한 것입니다 :

여기 내 코드입니다. 애니메이션이 완료되면 콜백이 호출되지 않습니다. 이 상황에 대한 해결책은 애니메이션 지속 시간 이후에 큐를 보냅니다.

override func viewDidLoad() { 
    super.viewDidLoad() 
    let animatedDone = GIFImageView() 
    animatedDone.prepareForAnimation(withGIFNamed: "animatedTick.gif", loopCount: 1) 


    DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: { 
     animatedDone.startAnimatingGIF() 
     DispatchQueue.global().asyncAfter(deadline: .now() + 0.5 + animatedDone.gifLoopDuration, execute: { // dispatch main or global 
      saveAndExit() 
     }) 
    }) 
}