Я пытаюсь создать анимацию, которая будет выглядеть как 2 французские двери (или 2 люка), открывающиеся в сторону пользователя.
Я попытался использовать встроенный переход UIViewAnimationOptionTransitionFlipFromRight, но источником перехода, похоже, является центр UIImageView, а не левый край. В основном у меня есть 2 UIImageViews, каждый из которых имеет экран. Я хотел бы, чтобы анимация выглядела так, как будто UIImageViews поднимаются от центра экрана к краям.
[UIView transitionWithView:leftView
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^ { leftView.alpha = 0; }
completion:^(BOOL finished) {
[leftView removeFromSuperview];
}];
Кто-нибудь делал что-то подобное раньше? Любая помощь будет потрясающей!
ОБНОВЛЕНИЕ: рабочий код благодаря Нику Локвуду
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;
}];