2012-03-15 2 views
0

성장 애니메이션 내가 mainView를로드하면 괜찮아. 문제는 제가 view2를로드하고 view2를 닫습니다. 다시 mainView로 돌아 왔을 때 더 이상 애니메이션이 적용되지 않습니다.원 내가 반복 성장하고 페이드 원의 이미지와 함께있는 UIImageView 애니메이션입니다

왜 그런가?

편집이 : 메소드가 호출되고있다 : 볼이 기각

-(IBAction) fourthBtn:(id)sender 
{ 
    view2 *view2 = [self.storyboard instantiateViewControllerWithIdentifier:@"view2"]; 
    [self presentModalViewController:view2 animated:YES];  
} 

:

2012-03-15 14:11:13.946[1529:17903] view2 canceled //dismissing view2 
2012-03-15 14:11:13.947[1529:17903] mapView viewWillAppear fired 
2012-03-15 14:11:13.948[1529:17903] mapView viewWillAppear end 
2012-03-15 14:11:14.352[1529:17903] mapView viewDidAppear fired 
2012-03-15 14:11:14.353[1529:17903] animating circles 
2012-03-15 14:11:14.354[1529:17903] mapView viewDidAppear end 

편집 2도

-(IBAction) cancel:(id) sender 
{  
    NSLog(@"heir canceled"); 

    [self dismissModalViewControllerAnimated:YES]; 
} 

을, 나 자신은 애니메이션을 중지하지 마십시오 내 코드의 어느 시점에서든.

+0

아마도 'viewDidAppear'이 호출되지 않았습니까? 보기 전환 코드를 표시하십시오. –

+0

viewDidAppear이 호출되는 것입니까? 직접 view2를로드 할 때 애니메이션을 중지 하시겠습니까? – Brodie

+0

viewDidAppear가 호출되고 animateOuterCircle이 호출됩니다. – Padin215

답변

0

일부 코드를 다시 작성했습니다.

-(void)viewWillDisappear:(BOOL)animated 
{ 
    [self.outerCircle removeFromSuperview]; 
    [self.innerCircle removeFromSuperview]; 
} 

- (void)viewDidAppear:(BOOL)animated 
{ 
    self.innerCircle = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"inner-circle.png"]]; 
    self.innerCircle.frame = CGRectMake(self.innerCircle.frame.origin.x, self.innerCircle.frame.origin.y, 30, 30); 

    self.outerCircle = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"outer-circle.png"]]; 
    self.outerCircle.frame = CGRectMake(self.outerCircle.frame.origin.x, self.outerCircle.frame.origin.y, 40, 40); 

    [self.view insertSubview:self.innerCircle belowSubview:HUD]; 
    [self.view insertSubview:self.outerCircle belowSubview:HUD]; 

//other code 
} 

이러한 변경 사항과 함께, 나는 그것도 원하는대로 동작합니다.

outerCircle에 두 번째 애니메이션을 적용하는 것과 관련이 있다고 생각합니다. (이미 첫 번째 viewDidAppear에서 이미 애니메이션이 적용되었으며, 두 번째로 viewDidAppear가 호출되었을 때 이미 애니메이션이 적용된 이미지가 다시 애니메이션 처리되고 완전히).

0

내 생각 엔 viewDidAppear가 호출되지 않는다는 것입니다. 뷰의 관점에서 결코 사라지지 않기 때문입니다.

view2를 어떻게 만들고 표시하는지에 따라, 닫을 때 view2 내에서 작동합니까?

[parentViewController viewDidAppear:YES]; 
+0

viewDidAppear이 호출되고 애니메이션 메서드가 호출되고 있습니다. 애니메이션을하지 않는 것. – Padin215

+0

어떻게하면 우리는 당신이 다음에 view2를 해고 선물을 보여줄 수 있습니까? – Brodie

+0

Out of curiosity - outerCircle의 색상을 변경하여 계속 참조되는지 확인하십시오. 그렇지 않다면 어쩌면 제대로 보존/참조되지 않을 것입니다. 어떻게 외부 원을 만들고 있니? – Brodie

관련 문제