2011-02-23 3 views
2

매우 특이한 문제가 있습니다. 아래의 애니메이션을 실행 한 후에 개발 한 iOS 앱에서 UI의 다양한 요소가 표시 될 때마다 애니메이션으로 나타납니다.iOS : 하나의 애니메이션 후에 다른 모든보기가 애니메이션으로 시작됩니다.

예를 들어, 아래의 애니메이션을 실행하면 앱의 새 탭으로 이동할 때마다 모든 UI 요소가 아이폰의 왼쪽 상단에서 적절한 위치로 움직입니다. 나는 다른 탭에서 이러한 UI 요소에 대한 애니메이션을 지정하지 않았으며 실제로 iPhone 상태 표시 줄의 활동 표시기와 같이 액세스 할 수없는 요소까지 모두 자체적으로 애니메이션으로 시작합니다.

무슨 일입니까? 왜 아래 애니메이션이 실행 된 후에 만 ​​이런 현상이 발생합니까? 이 애니메이션을 실행하기 전에 (버튼 누름으로) 다른 앱 탭의 다른 모든 UI 요소는 애니메이션이 표시 될 때 전혀 움직이지 않습니다. 이는 예상되는 동작입니다.

- (IBAction) btnChosenPostcodeClicked:(id)sender { 

    //prep animations 
    startView.alpha = 1.0; 
    postcodeView.alpha = 0.0; 

    [self.view addSubview:postcodeView]; 

    [UIView beginAnimations:@"ChosenPostcodeAnimation01" context:nil]; 

    [UIView setAnimationDuration:animationSpeed]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.view cache:YES]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(chosenPostCodeFadeoutAnimationDone:finished:context:)]; 

    startView.alpha = 0.0; 

    [UIView commitAnimations]; 

} 

- (void)chosenPostCodeFadeoutAnimationDone:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context { 
    //prep animations 
    postcodeView.alpha = 0.0; 

    [UIView beginAnimations:@"ChosenPostcodeAnimation02" context:nil]; 

    [UIView setAnimationDuration:animationSpeed]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.view cache:YES]; 

    CGRect newRect = CGRectMake(42, 157, 239, 180); 
    imvBubble.frame = newRect; 

    postcodeView.alpha = 1.0; 

} 

답변

3

당신은 애니메이션의

chosenPostCodeFadeoutAnimationDone에서

[UIView commitAnimations]; 
그래서 절대적으로 모든 것을 당신이되고 않는 부분을 놓치고있어!

+1

와와! 학교 소년 오류입니다. 감사. – Diego

+0

전체 앱을 감싸는 애니메이션이 멋지겠습니까? 하하. – Emil

+0

덧붙여 말하자면, 애니메이션 블록 외에도이 버그에 대한 또 다른 잠재적 인 원인이 내게있어서 생겨야하며 하나의 닫히지 않은 블록이 없습니다. (iOS6) – Ash

관련 문제