У меня есть вида с ним Базовым слоем, и я добавить CATransformLayer к слою отображения вида:Как установить CATransformLayer анимацию центр вращения
[view.layer addSublayer: transformLayer] ;
Мой добавленный слой содержит всевозможные подслои, представляющие отдельные стороны нескольких трехмерных блоков. Я хотел бы применить анимацию к слою для поворота блоков.
CATransform3D rotation = CATransform3DMakeRotation(deg * M_PI/180, x, y, z);
[CATransaction begin];
[(CATransformLayer *)[pView.layer.sublayers objectAtIndex:0] setSublayerTransform:rotation];
or (both seem to produce the same result)
[(CATransformLayer *)[pView.layer.sublayers objectAtIndex:0] setTransform:rotation];
[CATransaction commit];
Проблема в том, слой вращается примерно вокруг переднего угла, а не в центре кубов (смотри ниже, например).
/\ /\
/\ /\/\ /\/\
/\/\ |\/\ /| |\/\ /|
|\/\ /| | |\ /| | | |\ /| |
| |\ /| | \| | |/ \ OR /\| | |/
|\| | |/| ==> \|/ \/\ /\/\|/
|1|\|/|B| |\/\ /| |\/ /|
\|2|A|/ |A|\ /| | | |\ /|2|
\|/ \|B| |/ \| |1|/
\|/ \|/
Этикетки A/B должны перемещаться в положения 1/2, или 1/2 должны перемещаться в положение A/B в зависимости от направления вращения. Вместо этого он изменяется от первого рисунка, поворачивается примерно вокруг переднего угла, что приводит к чему-то близкому к другим фигурам. Верхние немеченые блоки находятся в другом виде и статичны, поэтому не являются частью вращения. Нижние помеченные блоки находятся в представлении/слое, который я пытаюсь оживить.
Как изменить центр вращения для достижения желаемого результата?
Я перепутались с anchorPoint, zPosition, anchorPointZ для различных слоев без успеха. Попробовали setSublayerTransform, setTransform.
Должен ли я вмешиваться в настройки для подслоев стороны блока, слоя преобразования, уровня представления или самого представления для достижения того, что я хочу?
Любое руководство или руководство будут оценены.
Никто больше не прокомментировал это больше года, но я наткнулся на это и подумал, что это может помочь кому-то, кто пытается решить подобную проблему: http: // tumbljack.com/post/176535888/3d-objects-in-object-c-with-catransformlayer – InkGolem