나는하려고하는 밀착 형 애니메이션이 있습니다. 두 단계가 있습니다.2 단계가 작동하지 않는 CATransform3D 애니메이션
1 단계 : 레이어를 가져 와서 원근감을 조금 변경하여 레이어의 상단이 뒤로 움직이는 것처럼 보입니다. sourceViewController.view.layer.transform CATransform3DMakePerspective(0, 0.003, CATransform3DIdentity);
2 단계 : 비율을 80 %로 변경하고 원근법을 정상으로 되돌립니다. 약간의 스윙처럼 애니메이션을 축소합니다.
sourceViewController.view.layer.transform = CATransform3DScale(sourceViewController.view.layer.transform, 0.8, 0.8, 1);
sourceViewController.view.layer.transform CATransform3DMakePerspective(0, 0, sourceViewController.view.layer.transform);
나의 가장 큰 문제는 이것이다. 나는 레이어에서 동시에 2 개의 애니메이션을 할 수 없다. 동시에 두 가지 작업을 수행하는 대신 첫 번째 변환이 끝날 때 자동으로 시작됩니다. 그것은 concat에 의해 해결 될 수 있지만, 1 단계가 일어나기를 원하기 때문에 레이어가 상태를 저장하므로 2 단계가 발생할 수 있습니다. 3 번 모두 연결할 수 없습니다.
같은 레이어에 하나 이상의 변형이있는 다중 단계 애니메이션을 만드는 방법은 무엇입니까? 아래 예에서 말한 것처럼 1 단계를 건너 뛰고 단계가 이미 완료된 것처럼 시작합니다. 나는 설명하기에 혼란 스럽다. 여기에 내 애니메이션이있다.
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationCurveEaseIn animations:^{ sourceViewController.view.layer.transform = CATransform3DMakePerspective(0, 0.003, sourceViewController.view.layer.transform); [UIView animateWithDuration:1.0 delay:1.0 options:UIViewAnimationCurveEaseOut animations:^{ sourceViewController.view.layer.transform = CATransform3DConcat(CATransform3DScale(sourceViewController.view.layer.transform, 0.8, 0.8, 1),CATransform3DMakePerspective(0, 0, sourceViewController.view.layer.transform)); } completion:nil]; } completion:^(BOOL finished){ }];
저는 인터넷 검색을하고 모든 것을 시도했습니다. 마지막 elft가 꺼지는 장소에서 시작하는 동일한 레이어에서 연속적인 애니메이션을 수행하는 방법이 있어야합니다. 나는 Identity가 레이어가 변형 된 곳이 아닌 시작 상태로 되돌아가는 것을 읽었 기 때문에 CATransform3DIdentity 대신에 레이어를 전달할 것입니다.
에서 두 번째 애니메이션이 필요합니다. 완료 될 때까지 애니메이션이 완료 될 때까지 적어도 1 초의 지연이 있습니다. 이벤트 알림에 지연이있는 것 같습니다. 단계 사이에 지연을 갖는 것은 실제로 옵션이 아닙니다. 키 프레임을 사용하여 애니메이션을 만들고 애니메이션 오브젝트를 작성하고 3 단계/키 프레임으로 레이어에 전달할 수 있습니까? –