2011-12-18 3 views
4

У меня есть UIImageView, который вращается. Когда он поворачивается до точки, где он равен 90 ° для пользователя, очевидно, что представление не имеет к нему никакой глубины. Как смотреть на лист бумаги под углом 90 °.CATransform3D глубина на краю обзора, которая повернута

Я использую:

// Rotate 

CATransform3D rotationAndPerspectiveTransform2 = CATransform3DIdentity; 
rotationAndPerspectiveTransform2.m34 = 1.0/-400; 
rotationAndPerspectiveTransform2 = CATransform3DRotate(rotationAndPerspectiveTransform2, M_PI, 1.0f, 0.0f, 0.0f); 

Как я мог бы добавить некоторую глубину моей точки зрения, так что, когда она попадет на 90 ° она имеет края больше похож на 3D объект, а не плоский вид?

+1

+1 Отличный вопрос. Я всегда задавался вопросом, как Apple это делает, когда переворачивается в iBooks Store в iBooks. –

+0

Да, я видел воссоздание этого эффекта, но это было ужасно, перспектива была очень удалена. –

+0

С правой стороны головы может потребоваться два слоя. Боковой слой должен начинаться с 90 ° преобразования и анимировать до 0 ° или 180 °, в то время как лицо на слое делает точную противоположность с той же скоростью. Соедините это преобразование с переводом вдоль оси x, и это может быть убедительным. –

ответ

0

Вы можете настроить 3D-дерево слоев в CA, разместив их в трехмерном пространстве с одним слоем на каждую сторону. Таким образом, 3D-вращающийся куб имел бы 6 слоев; по одному для каждого лица.

Если вы сделаете все эти слои детьми CATransformLayer (T), вы можете применить одно преобразование к T, чтобы, например, повернуть всю структуру в 3D-пространстве.

Невозможно «выдавить» CALayer.

Смежные вопросы