2013-10-08 2 views
0

사용자가 앞으로 또는 뒤로 버튼을 누르면 내보기의 슬라이드 아웃 슬라이드 인 모션을 만들려고합니다. 는 내가 처음보기 슬라이드 밖으로 잘 만들었지 만, 두 번째는 그냥 밀어하지 않습니다애니메이션의 UIView가

다음

내 코드입니다 :. 정말 문제가, 그것은해야 무엇인지 표시되지 않습니다

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDelay:0.1]; 
[UIView setAnimationDuration:0.7]; 

UIView *currentView = [[contentScrollView subviews] objectAtIndex:0]; 
currentView.center = CGPointMake(contentScrollView.frame.size.width+contentScrollView.frame.size.width/2, currentView.center.y); 

UIView *newView = [[contentScrollView subviews] objectAtIndex:1]; 
newView.center = CGPointMake(newView.center.x+newView.frame.size.width, newView.center.y); 

[UIView commitAnimations]; 

작업. 하지만 현재보기가 슬라이드 아웃되고 newView는 여전히 -x 값으로 사용자로부터 숨겨져 있습니다.

이미 변환으로 변경하려고 시도했지만 아무 것도하지 않았습니다.

누구든지이 문제의 원인을 알 수 있습니까?

+0

'newView.center.x + newView.frame.size.width'를 로깅하려고 했습니까? 그것에 올바른 가치가 있습니까? – micantox

+0

동시 사용 하시겠습니까? – Unheilig

+0

나는 그들이 동시에 일어나길 바란다. 같은 시간 슬라이드 아웃 및 슬라이드. 대시 보드에서 페이지를 변경할 때처럼. X 값을 넣어도 상관 없습니다. 움직이지 않습니다. –

답변

0

다음 코드를 시험해보십시오 (테스트 완료) : 동작을 보려면 복사하여 붙여넣고 필요에 맞게보기 프레임을 조정하십시오.

UIView *viewOne = [[UIView alloc] initWithFrame:(CGRect){{0, 0}, 200, 200}]; //currentView 
UIView *viewTwo = [[UIView alloc] initWithFrame:(CGRect){{200, 0}, 200, 200}]; //newView 
viewOne.backgroundColor = [UIColor lightGrayColor]; 
viewTwo.backgroundColor = [UIColor darkGrayColor]; 
[self addSubview:viewOne]; 
[self addSubview:viewTwo]; 

[UIView animateWithDuration:5.0f delay:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^ 
{ 
    viewOne.frame = (CGRect){{300, 0}, 200, 200}; 
    viewTwo.frame = (CGRect){{-100, 0}, 200, 200}; 

} completion:^(BOOL finished) { 


}]; 

이 두 가지보기가 어떻게 움직이고 있는지를 보여줍니다. 필요에 따라보기 프레임을 조정해야합니다.

+0

그게 효과가있는 것 같아, 필자는 필요로하는 방식으로 코드에 구현하려고 노력할 것이다. 답변으로 나중에 다시 올 테지만 감사합니다! :-) –

+0

도움이된다면 정답으로 표시하십시오. 도움이 더 필요하시면 언제든지 답장 해 주시기 바랍니다. – Unheilig

관련 문제