Как повернуть UIView в 3D?
У меня очень простая задача, но я не могу понять CATransform3DRotate. У меня есть 3 UIImageView с одинаковой высотой и шириной, и мне нужно установить некоторые преобразования для левого и правого элементов для следующего результата: https://dl.dropboxusercontent.com/u/15196617/result.png
Исходный экран: https://dl.dropboxusercontent.com/u/15196617/original.png
Мои источники:
CATransform3D transform = CATransform3DIdentity;
transform.m34 = -1.f / self.prevItemImageView.bounds.size.width;
transform = CATransform3DRotate(transform, (CGFloat) -(M_PI / 3.f), 0, 1.f, 0);
self.prevItemImageView.layer.anchorPoint = CGPointMake(1.f, 0.5f);
self.prevItemImageView.layer.transform = transform;
transform = CATransform3DIdentity;
transform.m34 = -1.f / self.nextItemImageView.bounds.size.width;
transform = CATransform3DRotate(transform, (CGFloat) (M_PI / 3.f), 0, 0.5f, 0);
self.nextItemImageView.layer.anchorPoint = CGPointMake(0.f, 0.5f);
self.nextItemImageView.layer.transform = transform;
Это не работа.
2 ответа
Что вы хотите сделать, это применить преобразование с измененным .m34
компонент для суперслоя ваших изображений, как sublayerTransform
, Это то, что дает трансформации на изображениях видимость глубины.
Этот образ начал жизнь как квадрат. Но он выглядит повернутым в 3D, потому что его суперслой имеет sublayerTransform
:
Я нашел одно решение для этого типа анимации. Пожалуйста, проверьте эту ссылку
https://github.com/GlennChiu/GC3DFlipTransitionStyleSegue
Это мы можем добавить с помощью стручков..
примите ответ, если он работает.