2012-10-02 4 views
0

특정 조건이 충족 될 경우 배지 애니메이션을 적용하는 데 다음 코드가 있습니다. 그것은 (다른 VC에서)의 ViewController가 룩업 후 다시로드 된 직후에 호출되는 경우를 제외하고는 잘 작동ViewController로 돌아온 후 애니메이션이 작동하지 않습니다.

if ((-MY CONDITION HERE-) { 
     NSLog(@"am going to animate!"); 

     [UIView animateWithDuration:1.0 
          delay:0 
          options:(UIViewAnimationOptionAutoreverse|UIViewAnimationOptionRepeat) 
         animations:^{ 
            selectedInfoButton.alpha = 0.4; 
           } 
         completion:nil]; 
    } 

나는 VC가 다시로드 될 때 해당 메서드가 호출되는 것을 볼 수있다, 그러나 룩업이 호출 될 때와 같은 상태에서 애니메이션은 '고정'됩니다. 무엇이 잘못 될 수 있습니까?

+0

0.1의 지연을 부여하려고 시도하십시오. – vishy

+0

코드에 지저분한 지연을 추가하기 전에 문제를 적절히 수정하는 방법을 자주 찾을 수 있습니다. – occulus

+0

InRainbows, 위의 코드는 어디에서 발생합니까? 예를 들어 viewDidAppear에 있습니까? 또는 viewDidLoad? – occulus

답변

1

가능성 :

  • 한 시간은 코드가 그게입니다 (조건이 만족 확인 viewWillAppear

  • 에 추가 그 때는 viewDidLoad 방법이라고 viewController

    에서 작동 블록 안의 코드 히트). 두 번째로 ViewController가 다시 나타납니다.

+0

ViewDidAppear에서 코드 호출을 반복하면 애니메이션이 다시 작동합니다. 그것은 viewWill와 함께하지 않습니다! 중단 점이있는 코드 다음에 애니메이션이 viewDidLoad 동안 호출되고 애니메이션이 포함 된 VC 로의 segue 전환이 시작되기 전에 볼 수 있습니다. 아마도 segue 전환이 애니메이션을 죽이기 때문에 viewDidAppear이 작동 한 후에 다시 애니메이션을 시작합니다. 답장을 보내 주셔서 감사합니다. – InRainbows

관련 문제