2

사용자 지정 UIView 전환을 만들려고합니다. 기본적으로 특정 모달보기가 표시되면 덮어 쓰고있는보기가 배경으로 이동합니다.모달 뷰 컨트롤러를 표시 할 때 코어 애니메이션 레이어가 이상하게 작동합니다. CATransform3D 문제

코어 애니메이션을 사용하여 뷰의 레이어에서 CATransform3D를 조작하고 배경으로 이동하면서 그 위에 모달 뷰를 표시합니다.

내가이

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"]; 

CATransform3D toTransform = CATransform3DIdentity; 
toTransform.m34 = 1.0f/-500.0f; 
toTransform = CATransform3DTranslate(toTransform, 0.0f, 0.0f, -40.0f); 

[animation setFromValue:[NSValue valueWithCATransform3D:CATransform3DIdentity]]; 
[animation setToValue:[NSValue valueWithCATransform3D:toTransform]]; 
[animation setDuration:1.0f]; 

self.menuView.layer.transform = toTransform; 
[self.menuView.layer addAnimation:animation forKey:@"moveBackAnimation]; 

self.menuView처럼 CATransform3D의 변화를 애니메이션하기 위해 CABasicAnimation를 작성하고있는 배경에보기를 이동 내가 다시 이동하고있는 도면이다합니다.

이것은 모달보기에 추가 할 때까지 효과적입니다.

RVLAddViewController *addViewController = [[RVLAddViewController alloc] initWithNibName:@"RVLAddViewController" bundle:nil]; 
[self presentViewController:addViewController animated:YES completion:nil]; 

버튼이 pressed.If 때 내가 바로 애니메이션에서이 코드를 호출 그냥 거리로 퇴색처럼 예상 뷰가 보이는 그들에게 존재하지 않는이 코드는 모든 것은 그때가 유지 작품 .

거리가 서서히 사라지는 대신 모달보기가 표시되면 더 작은 크기로 내려 가서 왼쪽 상단 모서리로 이동합니다.

가능한 한 빨리 샘플 응용 프로그램을 업로드하겠습니다. github이 지금 다운되었습니다. 편집 필요 없음 - 해결책이 주어졌습니다! /편집

답변

1

나는 이것을 잠시 혼란스럽게 보았고 자동 레이아웃과 관련이있는 것 같습니다. 이 기능을 끄면 예상대로 작동합니다.

+0

그게 전부 였어! 감사합니다. 자동 레이아웃에 대해 더 자세히 알아볼 시간을 맞춰보세요. –