Próbuję utworzyć animację, która będzie wyglądać jak 2 francuskie drzwi (lub 2 drzwi luków) otwierające się w kierunku użytkownika.Jak animować UIImageViews jak otwierać drzwi luków
Próbowałem użyć wbudowanego przejścia UIViewAnimationOptionTransitionFlipFromRight, ale początek przejścia wydaje się być centrum UIImageView, a nie lewej krawędzi. Zasadniczo mam 2 UIImageViews, które każde wypełnienie ma ekranu. Chciałbym, aby animacja wyglądała tak, jak UIImageViews podnoszą się ze środka ekranu do krawędzi.
[UIView transitionWithView:leftView
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^ { leftView.alpha = 0; }
completion:^(BOOL finished) {
[leftView removeFromSuperview];
}];
Czy ktoś wcześniej coś takiego zrobił? Każda pomoc będzie niesamowita!
UPDATE: kod roboczych dzięki Nick Lockwood
leftView.layer.anchorPoint = CGPointMake(0, 0.5); // hinge around the left edge
leftView.frame = CGRectMake(0, 0, 160, 460); //reset view position
rightView.layer.anchorPoint = CGPointMake(1.0, 0.5); //hinge around the right edge
rightView.frame = CGRectMake(160, 0, 160, 460); //reset view position
[UIView animateWithDuration:0.75 animations:^{
CATransform3D leftTransform = CATransform3DIdentity;
leftTransform.m34 = -1.0f/500; //dark magic to set the 3D perspective
leftTransform = CATransform3DRotate(leftTransform, -M_PI_2, 0, 1, 0);
leftView.layer.transform = leftTransform;
CATransform3D rightTransform = CATransform3DIdentity;
rightTransform.m34 = -1.0f/500; //dark magic to set the 3D perspective
rightTransform = CATransform3DRotate(rightTransform, M_PI_2, 0, 1, 0);
rightView.layer.transform = rightTransform;
}];
Uwaga: można zamienić znak minus na obroty lewe i prawe drzwi, aby uczynić drzwi otwierają się do wewnątrz. –