전체 화면을 차지하는 2 개의 하위보기가 있습니다 (상태 표시 줄 제외). 이 크기를 "화면 크기"라고합시다.iPhone - 동시에 2 개의 하위보기 애니메이션하기
내가 모두 애니메이션 할 :
알파 0 알파 1
에서 두 번째로, 화면 크기의 화면 크기보다 큰 약간으로부터 확대 할 제 화면 크기보다 약간 작은 화면 크기 (알파 1에서 알파 0까지).
두 번째보기는 화면에 표시되며 시작시 표시됩니다. 물론
- (void) switchViews
{
if (self.view2Controller == nil) {
self.view2Controller = [[View2Controller alloc] initWithNibName:@"View2XIB" bundle:nil];
self.view2Controller.view.hidden = YES;
[self.view addSubview:self.view2Controller.view];
}
CGRect bigFrame = CGRectInset(self.view.frame, -50, -50);
CGRect normalFrame = self.view.frame;
CGRect smallFrame = CGRectInset(self.view.frame, 50, 50);
self.view2Controller.view.frame = bigFrame;
self.view2Controller.view.alpha = 0.0;
[UIView beginAnimations:@"Anim1" context:nil];
[UIView setAnimationDuration:5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.view cache:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
self.view2Controller.view.hidden = NO;
self.view2Controller.view.frame = normalFrame;
self.view2Controller.view.alpha = 1.0;
[UIView commitAnimations];
// ------------------------------
[UIView beginAnimations:@"Anim2" context:nil];
[UIView setAnimationDuration:5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.view cache:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
self.view1Controller.view.frame = smallFrame;
self.view1Controller.view.alpha = 0.0;
[UIView commitAnimations];
}
, 나는 독특한 하나에 모두 애니메이션을 넣어 처음 시도했다 :
나는이 썼다. 그건 아무 것도 변하지 않으니까요. 그래서 그것들을 분리하려고했습니다.실행되면 view1이 즉시 검정색으로 바뀌고 view2가 예상대로 애니메이션을 시작합니다. 그러나 두 애니메이션을 동시에 실행할 수는 없습니다.
어떻게하면됩니까?
어 ... 아니, 농담하는거야? 나는 오늘 밤했던 것처럼 코드를 격리하려고 노력할 것이다. :-) – Oliver
아 아 ... 미안하지만 ... 검색 필드가 보낸 코드보다 약간 큽니다 ... 고립 된 코드를 사용해보십시오 (새 편집 된 답변보기) – meronix