2014-04-11 2 views
0

이것은 애니메이션에 사용하는 코드입니다. UIView 애니메이션에서보기를 이동하지 않습니다.

 NSLog(@"SlideLoadingViewOut : frame: X:%f, Y:%f", self.loadingView.frame.origin.x, self.loadingView.frame.origin.y); 
     [UIView animateWithDuration:time animations:^{ 
      self.loadingView.frame = CGRectMake(320, 0, self.loadingView.frame.size.width, self.loadingView.frame.size.height); 
      NSLog(@"SlideLoadingViewOut : frame: X:%f, Y:%f", self.loadingView.frame.origin.x, self.loadingView.frame.origin.y); 
     } completion:^(BOOL finished) { 
      NSLog(@"SlideLoadingViewOut : frame: X:%f, Y:%f", self.loadingView.frame.origin.x, self.loadingView.frame.origin.y); 
     }]; 

는 콘솔에 출력 내가 얻을 : 애니메이션이 시작

하기 전에 완료 블록에서

SlideLoadingViewOut : frame: X:320.000000, Y:0.000000 

: 애니메이션 블록에서

SlideLoadingViewOut : frame: X:0.000000, Y:0.000000 

:

SlideLoadingViewOut : frame: X:0.000000, Y:0.000000 

보기가 움직이지 않습니다. 누구나 이것이 일어날 수있는 이유를 알고 있습니다.

답변

0

애니메이션 블록이 이전을 만들어보십시오, CGRectMake이 블록 내에있는 좋아하지 않는 몇 가지 이유

와일드 추측.

0

글쎄, 누군가가 일찍이 대답하지만 어떤 이유로 그의 코멘트가 사라졌습니다. Apperntley 메인 프레임과 다른 스레드에서 프레임을 변경하려고했는데, 메인 스레드에서 프레임을 실행하고 사용했습니다.

dispatch_async(dispatch_get_main_queue(), ^{ 
    // do work here 
}); 
관련 문제