2014-07-19 1 views
1

PresentView 전환과 UIAnimations간에 흥미로운 충돌이있는 것 같습니다. 간단히 말해, 사용자는 뷰 A에서 버튼 그래픽을 탭할 수 있어야합니다.이 버튼은 탭을 누르십시오. 그런 다음 다음보기로 이동합니다.보기 B는 분해 전환으로 나타납니다. ViewB에 도착하면; UIAnimation에서 재생되는 애니메이션이 있어야합니다.PresentView 및 UIAnimation보기 충돌?

아래의 코드는 ViewA에서 호출 코드가 B보기 보여줍니다

[WizzAnimationManager pulseOnce:buttonToPulse toSize:0.9 withDuration:0.15]; 

    [NSThread sleepForTimeInterval:0.2]; 

    UIStoryboard* mainStoryBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
    WizzPlayViewController* vc = [mainStoryBoard instantiateViewControllerWithIdentifier:@"WizzPlayView"]; 

    vc.modalTransitionStyle=UIModalTransitionStyleCrossDissolve; 
    [self presentViewController:vc animated:YES   completion:Nil]; 

문제는 ViewB에서 UIAnimation가 화면의 한쪽에서 다른 번역하도록되어 있다는 점이다. 위의 코드에서 "종료"애니메이션은 표시되지만 번역은 표시되지 않습니다. 즉, UIAnimation이 실행되지 않은 것과 같습니다.

이제 PresentViewController 플래그 "Animated"를 NO로 설정하면; View B UIAnimation의 번역은 정상적으로 작동합니다. 그러나 ViewA의 펄스 애니메이션은 더 이상 작동하지 않습니다 (크로스 디졸브 전환이 진행되는 한).

하나의 뷰에서 다른 뷰로의 전환과 ViewB의 애니메이션 사이의 관계를 확실히 알 수는 없습니다. 하지만 둘 사이의 우선 순위 충돌이 있음을 느낄 수 있습니다

비슷한 문제가 누구를 만났습니까? 당신이 가질 수있는 조언을 미리 감사드립니다.

답변

1

On AnotherView 지연 후 애니메이션 코드를 실행해야 작동하는 것으로 보입니다.

[self performSelector : @selector (animationCode :) withObject : nil afterDelay : 0.1];

+0

감사합니다. 그것은 작동합니다! :) – stephane