2013-04-27 3 views
0

보기가로드 될 때 UIView 애니메이션을 사용하여 단추를 이동해야합니다. 거의 동일한 애니메이션은 버튼을 누르면 다른보기에서 작동합니다. 이것은 내 ViewDidLoad입니다애니메이션 단추보기가 호출 될 때

HTMLButton.hidden = NO; 
HTMLButton.enabled = NO; 

[UIView animateWithDuration:1.0 
       animations:^{ 
        CGRect HTMLRect = HTMLButton.frame; 
        HTMLRect.origin = CGPointMake(HTMLRect.origin.x, HTMLRect.origin.y + 70); 
        HTMLButton.frame = HTMLRect; 
        NSLog(@"Animation Called"); 
       }]; 

NSLog는 컴파일하지만 전혀 애니메이션이 없습니다. 여기에 애니메이션을 부를 수 없습니까, 아니면 제가 잘못하고있는 걸까요? 나는 다른 버튼에 별도의 IBAction를 호출 같은 애니메이션을 사용, 정지 애니메이션 나던 작업

+0

'viewDidLoad' 대신에'viewDidAppear'에이 코드를 넣으려고 했습니까? – Isaac

+0

네, 행운이 없습니다 –

+0

'HTMLButton'이 실제로'nil'이 아닌 무언가로 설정되어 있는지 확인 했습니까? – Isaac

답변

0

의 viewDidLoad 또는 viewDidAppear 내부가 방해 될 수 있습니다

편집을 도울 수있는 사람에게 감사 생기. viewDidLoad에 다른 작업이있을 수 있으므로 프레임 변경 애니메이션을 호출 할 때 버튼이 완전히로드되지 않습니다. 나는이 문제를 해결할 수 있는지 모르겠지만 그것이 나에게 일어난 경우 나는 확실히이 시도 줄 것이다 :

double delayInSeconds = 0.2; //Or you may play with it further 
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); 
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 

    [UIView animateWithDuration:1.0 
      animations:^{ 
       CGRect HTMLRect = HTMLButton.frame; 
       HTMLRect.origin = CGPointMake(HTMLRect.origin.x, HTMLRect.origin.y + 70); 
       HTMLButton.frame = HTMLRect; 
       NSLog(@"Animation Called"); 
      }]; 

}); 

이 사용자가 0.2을 이해하는 것이 불가능하다 (애니메이션이 조금 호출 지연됩니다 sec 지연) viewcontroller가 초기화를 수행하지 않고 대기 상태가됩니다.

+0

나는 같은 결과를 얻었지만, –

+0

은 5 초 정도의 극단적 인 지연을 주었다. 아직 애니메이션이되지 않는다면 버튼 초기화로 다른 문제를 찾아야합니다. – guenis

+0

왜이 방법이 효과가 있었는지 잘 모르겠지만 my .m에서 HTMLButton = [[UIButton alloc] init];을 제거하고 작동합니다. 당신의 마지막 코멘트는 내가 초기화를 조사하게 해준 것입니다. 감사합니다. –

관련 문제