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