2012-05-30 3 views
0

저는 현재 스 와이프 제스처를 사용하여 한 뷰에서 다른 뷰로 애니메이션하려고합니다. 다시 스 와이프 제스처는 뷰 A를 화면 왼쪽에서 애니메이트 한 다음 오른쪽에서 B 뷰와 함께 애니메이트합니다.UIView animation annomily

이것은 내 응용 프로그램에서 실제로 작동하지만보기 A의 가장자리에있는보기 B 대신에 애니메이션보기가 있고 동시에 움직이기 때문에보기 A의 애니메이션이 끝날 때까지보기 B가 움직이지 않습니다. .

이 코드가

- (void)swipedScreen:(UISwipeGestureRecognizer*)gesture 
{ 
    if (gesture.direction = UISwipeGestureRecognizerDirectionLeft) { 
     [UIView animateWithDuration:1.50 animations:^{ 

//   [self.detailViewB.view setAlpha:1.0f]; 
      [self.detailViewB.view setCenter:CGPointMake(CGRectGetMidX(self.view.frame), CGRectGetMidY(self.view.frame))]; 
      [self.detailViewA.view setCenter:CGPointMake(-640, CGRectGetMidY(self.view.frame))]; 
     }]; 
    } 
} 

모습입니다 그리고 당신은 소스를 직접 컴파일하려는 경우 여기에 내가 함께 장난하고있는 코드에 대한 링크입니다. http://dl.dropbox.com/u/53813770/SMPrototypeB.zip

모든 도움을 주시면 대단히 감사하겠습니다.

+0

시도를' –

답변

1

이 코드를 고정하고 here

변경이 내가 만든 프로젝트 다시 업로드 : 애니메이션 :`animateWithDuration에 별도의 애니메이션 블록, 또는 다른 통화에 넣어하는

-(void) viewDidLoad 
{ 
    [self.detailViewB.view setFrame:CGRectMake(320, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

} 


- (void)swipedScreen:(UISwipeGestureRecognizer*)gesture 
{ 
    if (gesture.direction = UISwipeGestureRecognizerDirectionLeft) { 
     [UIView animateWithDuration:1.50 animations:^{ 

      //   [self.detailViewB.view setAlpha:1.0f]; 
      [self.detailViewB.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
      [self.detailViewA.view setFrame:CGRectMake(-320, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
     }]; 
    } 
+0

는 완벽하게 작동 .. 단지 코드를 이해하면 더 잘 이해할 수 있습니다. :) 남자를 건배! –

+0

아무 문제 없어! 다행 이군. 난 그냥 detailB를 320으로 설정하고 (화면 오른쪽에서 벗어남) detailA 애니메이션을 -320 (화면 왼쪽)으로 움직이고 detailB를 0 (볼 수있는)으로 애니메이션화합니다. – shabbirv

+0

아 .. 아 .. 매우 근사하고 많은 사과를 마 셨습니다. 오늘 읽고있는 문서들 나는 그것을 얻을 수 없었다 : P –